Добавление основного подкласса кода ядра Entity Framework с существующим именем свойства - PullRequest
0 голосов
/ 27 сентября 2018

Что является лучшей / хорошей практикой в ​​следующей ситуации при использовании наследования TPH в Entity Framework?

У меня есть

abstract class Base
{
    ...
}

class Sub1
{
    public int Amount {get;set;}
}

и DbContext с:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Sub1>();
}

public DbSet<Base> Bases { get; set; }

Теперь я добавляю

class Sub2
{
    public int Amount { get; set; }
}

и

modelBuilder.Entity<Sub2>();

Перед добавлением Sub2 Sub1.Amount был сопоставлен со столбцом «Amount» в таблице Bases.После добавления Sub2 Sub1.Amount сопоставляется со столбцом «Sub1_Amount», а Sub2.Amount сопоставляется со столбцом «Amount».В таблице есть данные, поэтому все новые столбцы «Sub1_Amount» являются пустыми.Когда я пытаюсь запустить систему, я получаю

Возникла исключительная ситуация при чтении значения базы данных для свойства 'Sub1.Amount'.Ожидаемый тип был «System.Int32», но фактическое значение было нулевым.

Я понимаю, почему это происходит ... но я думал, что миграция справится с этим.

Кто-нибудь знает, каксправиться с этим?Спасибо!

...