首先,这些问题是相似的,但绝对不一样:EF:当抽象基数和一些具体类型在TPH表中,并且其他类型有自己的表时,我可以混合使用TPH和TPT吗?
Can I mix Table per Hierarchy and Table per Type in Entity Framework? - 引用一个不同的场景。
Entity Framework: mix table per type and table per hierarchy - 另一种情况是,尽管接受第一种情况的答案与它无关(*)。 (*)其次,我在Entity Framework中成功地将table-per-type和table-per-hierarchy混合在一起,当使用table-per-entity映射基本实体并且使用table的鉴别器映射表时链级下降。
我试图映射以下:
表:
BaseTable
{
int PK1;
int PK2;
string? Value1;
double? Value2;
}
ChildTable3
{
int PK1;
int PK2;
int Value;
}
实体:
abstract BaseEntity : class // Maps to BaseTable
{
int PK1; // Maps to PK1 in relevant table
int PK2; // Maps to PK2 in relevant table
}
Entity1 : BaseEntity // Maps to BaseTable when Value1 != null
{
string Value; // Maps to Value1
}
Entity2 : BaseEntity // Maps to BaseTable when Value1 == null && Value2 != null
{
double Value; // Maps to value2
}
Entity3 : BaseEntity // Maps to ChildTable3
{
int Value; // Maps to value
}
之前将ENTITY3映射工作。
添加ENTITY3及其映射之后,收到以下错误而编译:
错误1个错误3026:问题在映射片段起始于线980,986,995:数据丢失或键约束违反是可能的表BaseTable。 一种用密钥(PK)实体不会往返时: (PK是在 'BaseTables' 的EntitySet和实体是键入[MyNamespace.Entity3]) 路径\至\ My.edmx 981 15 MyAssembly程序
- 有没有办法让这项工作?
- 如果可以破解edmx来完成这项工作,我是否会放弃对数据库每次更新的破解?
感谢这个!如果可能的话,我宁愿避免使用设计师;有没有办法在代码中做到这一点? – 2014-03-27 16:21:59
我最后一次尝试使用EF 4.0的这种类型的映射(预先编码)。 – 2014-03-29 13:33:07