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);}
Другие вопросы по тегам