По EF6 можно сделать что-то вроде этого при настройке отображения сущностей с использованием таблицы за иерархии наследования:Entity Framework 6 и TPH наследование: Карта свойства с тем же именем в той же колонке, по умолчанию
public class MyContext : DbContext
{
public DbSet<Device> Devices { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ABatteryPoweredDevice>().Property(c => c.BatteryLevel).HasColumnName("BatteryLevel");
modelBuilder.Entity<ADifferentBatteryPoweredDevice>().Property(c => c.BatteryLevel).HasColumnName("BatteryLevel");
}
}
BatteryLevel
не является частью базового класса Device
- это свойство производных классов, реализованных для выполнения контракта интерфейса.
Можно ли сделать это по умолчанию, а не добавлять новое сопоставление для каждого производного класса?