Что является лучшей / хорошей практикой в следующей ситуации при использовании наследования 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», но фактическое значение было нулевым.
Я понимаю, почему это происходит ... но я думал, что миграция справится с этим.
Кто-нибудь знает, каксправиться с этим?Спасибо!