首先在实体框架代码中定义一些 POCO 对象(实体)时遇到问题 4. 我有一个主实体,比如说 Entity_A,它只有一个属性,只有 ID(主键)。其余实体(本例中的 Entity_B)继承自它(子实体),但其中一些实体 (Entity_C) 继承自另一个实体(来自 Entity_B,而不是来自 Entity_A)。例如:
public class Entity_A
{
public virtual Guid ID { get; set; }
}
// Entity_B has not primary key defined within as it inherits from Entity_A
public class Entity_B : Entity_A
{
public virtual string propertyB1 { get; set; }
public virtual string propertyB2 { get; set; }
public virtual string propertyB3 { get; set; }
}
// Entity_C has not primary key defined within as it inherits from Entity_A through Entity_B
public class Entity_C : Entity_B
{
public virtual string propertyC1 { get; set; }
public virtual string propertyC2 { get; set; }
public virtual string propertyC3 { get; set; }
}
所以在执行之后,Entity_A、Entity_B、Entity_C 的表会自动生成,但只有 Entity_A 和 Entity_B 的表是正确的,而 Entity_C 的表则不正确:
表 Entity_A 具有字段:
-ID
哪个是对的。
表 Entity_B 具有以下字段:
-ID
-propertyB1
-propertyB2
-propertyB3
这也是正确的。
表 Entity_C 具有以下字段:
-ID
-propertyC1
-propertyC2
-propertyC3
这对我来说是不正确的,至于 Entity_C 我期望以下字段:
-ID
-propertyB1
-propertyB2
-propertyB3
-propertyC1
-propertyC2
-propertyC3
我究竟做错了什么?实体框架代码优先(4.1版)根本不支持继承吗?
提前致谢。