Я пытаюсь заменить столбец дискриминатора своей собственной константой (а не строковыми константами EF). Мои следующие классы:EF дискриминаторы с цепным наследованием
[Table("stor_store")]
public abstract StoreBase { /* Base fields */ }
public StoreTemplate : StoreBase {/* Extra fields */ }
public Store : StoreBase {/* Extra fields */ }
[Table("cust_customer")]
public Customer : Store { /* Extra fields */ }
[Table("engi_engineer")]
public Engineer : Store {/* Extra fields */ }
Я пытался отобразить столбец с помощью текучего API:
modelBuilder.Entity<StoreBase>()
.Map<StoreTemplate>(m => m.Requires("stor_type").HasValue((byte)0)
.Map<Store>(m => m.Requires("stor_type").HasValue((byte)1))
.Map<Customer>(m => m.Requires("stor_type").HasValue((byte)2))
.Map<Engineer>(m => m.Requires("stor_type").HasValue((byte)3));
Однако EF всегда создает столбец дискриминатора. Это сопоставление работало до этого, но двойное вложенное наследование, похоже, его бросило. Спасибо за любую помощь.
Я не решить мою проблему, дискриминатор все еще там после переназначения карты. Я думаю, что я пойду с TPT, хотя. – Tim