Используя Model-first и Table-per-heirachy, я могу создать два класса, которые наследуются от одного и того же базового класса, и сопоставить столбец в каждом из двух производных классов с одним и тем же столбцом таблицы, чтобы я мог использовать 'столбцы.
Если я попробую это с Code-first, я получу следующую ошибку: «Каждое имя свойства в типе должно быть уникальным. Имя свойства« XXX »уже определено».
Я предполагаю, что это ошибка в коде в первую очередь?
Вот пример кода:
public class Parent
{
public Guid Id { get; set; }
}
public class ChildA : Parent
{
public Int32 ChildAProperty { get; set; }
}
public class ChildB : Parent
{
public Int32 ChildBProperty { get; set; }
}
public class TestContext : DbContext
{
public DbSet<Parent> Entities { get { return this.Set<Parent>(); } }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var childAConfig = modelBuilder.Entity<ChildA>();
childAConfig.Property(p => p.ChildAProperty).HasColumnName("Property");
var childBConfig = modelBuilder.Entity<ChildB>();
childBConfig.Property(p => p.ChildBProperty).HasColumnName("Property");
}
}