首先,這些問題是相似的,但絕對不一樣: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