EDMX перезаписывает ключевые аннотации данных
Это относится к EF 5 и моделированию базы данных. Моя модель была построена с использованием генератора EF из существующей БД.
Я использую аннотацию данных [Key] в моих модельных классах, потому что поля первичного ключа имеют имена, которые не соответствуют соглашениям EF.
Все работает, но когда я открываю корневые файлы EDMX, классы модели обновляются, и все сделанные вручную изменения теряются.
Должен ли я вносить свои изменения другим способом?
2 ответа
Вы могли бы обновить свой шаблон T4, чтобы добавить в вас аннотацию данных по первичным ключам?
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
if (ef.IsKey(edmProperty)){
#>
[Key]
<# } #>
Решение, которое работало для меня, состояло в том, чтобы переопределить соглашение EF в методе OnModelCreating в классе контекста.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<abk_Bookings>()
.HasKey(e => e.booking_number);}