Страницы

Поиск по вопросам

суббота, 15 июня 2019 г.

Entity FrameWork Code First атрибут альтернативного ключа

Доброго времени суток, хочу в бд для полей задать составной альтернативный ключ, как это можно провернуть через атрибуты Entity Framework? Есть еще мысль попробовать через миграцию, но предпочтителен через атрибуты, поиск не дал наличия такого атрибута, может плохо искал?
ps. EF6, .Net, C#, code first


Ответ

В документации от Microsoft сказано:
Alternate keys can not be configured using Data Annotations.
Перевод от меня:
Альтернативные ключи не могут быть настроены с помощью аннотации данных, т.е. атрибутов.
Поскольку Вы используете Code-First, то рекомендую попробовать Fluent API.
Приведу пример по настройке одного свойства с помощью Fluent API^
class MyContext : DbContext { public DbSet Cars { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasAlternateKey(c => c.LicensePlate); } }
class Car { public int CarId { get; set; } public string LicensePlate { get; set; } public string Make { get; set; } public string Model { get; set; } }
Полный список атрибутов поддерживаемых EF:
KeyAttribute StringLengthAttribute MaxLengthAttribute ConcurrencyCheckAttribute RequiredAttribute TimestampAttribute ComplexTypeAttribute ColumnAttribute TableAttribute InversePropertyAttribute ForeignKeyAttribute DatabaseGeneratedAttribute NotMappedAttribute

Комментариев нет:

Отправить комментарий