我有3個型號,在其領域,如下列:實體框架,表2個的外鍵2頁不同的表
public class RootObject
{
[Key]
public int RootObjectId { get; set; }
[ForeignKey("RootObjectId")]
public virtual AObject AObject { get; set; }
[ForeignKey("RootObjectId")]
public virtual BObject BObject { get; set; }
public string Name { get; set; }
}
public class AObject
{
[Key]
public int AObjectId { get; set; }
//Other fields
}
public class BObject
{
[Key]
public int BObjectId { get; set; }
//Other fields
}
我希望它這樣,如果我是目測檢查RootObject
表我會請參閱參見RootObjectId
和Name
的列表。爲了方便起見,我們假設偶數編號RootObjectId
的映射爲AObjectId
,賠率映射到BObjectId
。如果我目測檢查AObject
,我預計會看到編號爲2,4,6,...的編號爲RootObject
的FK。如果要目視檢查BObject
,我希望看到編號爲1,3,5,...的是FK的RootObject
。
目前,當我嘗試這種方法,我得到以下錯誤:
「在更新條目...參照完整性約束違規行爲發生錯誤的從屬角色有不同的價值觀多個主體。」
我試圖刪除RootObject
中的FK屬性,但在RootObject
中創建了2個填充了ID號的附加列。我不希望這樣,因爲每個RootObject
有一個AObject
或一個BObject
。它不能兼得。
它甚至不能在SQL中完成,更不用說EF。 –