【发布时间】:2012-03-11 05:22:33
【问题描述】:
很难找到相关的搜索结果...
鉴于此模型:
public abstract class A
{
public int ID { get; set; }
public int CustomerID { get; set; }
public virtual Customer Customer { get; set; }
}
public class B : A
{
}
public class C : A
{
}
public class Customer
{
public int ID { get; set; }
public virtual ICollection<B> Bs { get; set; }
public virtual ICollection<C> Cs { get; set; }
}
使用此配置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<A>().ToTable("As");
modelBuilder.Entity<B>().ToTable("Bs");
modelBuilder.Entity<C>().ToTable("Cs");
base.OnModelCreating(modelBuilder);
}
我在数据库中得到了这个结果:
问题:
不支持导航属性的继承吗?如果我将public string SomeSharedProperty { get; set; } 添加到A,那么正如我所期望的那样,该属性的列只显示在As 表中。
Bs 和Cs 表中的Customer_ID 列是什么原因?有没有办法告诉 EF 不要映射该继承属性?
谢谢!
【问题讨论】:
标签: c# entity-framework ef-code-first