3
我試圖找出如何EF配置,以處理以下情況涉及一個家長和孩子多:防止額外的外鍵列到很多關係
public class Parent
{
public int ParentId {get; set;}
[ForeignKey("SpecialChildOneId")]
public virtual Child SpecialChildOne {get; set;}
public int? SpecialChildOneId {get; set;}
[ForeignKey("SpecialChildTwoId")]
public virtual Child SpecialChildTwo {get; set;}
public int? SpecialChildTwoId {get; set;}
public virtual ICollection<Child> Children {get; set;}
}
public class Child
{
public int ChildId {get; set;}
public int ParentId {get; set;}
}
生成的表我的父類看起來不錯。在我的子表上,雖然我添加了兩個額外的列,Parent_ParentId和Parent_ParentId1,並且ParentId上沒有設置外鍵。
如何強制ParentId成爲Child表上唯一的外鍵並防止添加其他外鍵?
這幾乎是完美的。唯一的問題是創建一個Child對象並將其分配給parent.SpecialChildOne不會分配child.ParentId外鍵。我還必須將子項添加到要分配的外鍵的parent.Children集合中。 – 2015-04-07 14:08:34
您好@Brian,當您設置「SpecialChildOne」導航。屬性,將要設置的FK屬性是「SpecialChildOneId」。 FK'ParentId'屬性屬於另一個關係,這就是直到您將子項添加到其父項中的集合(檢查最後的Fluent Api配置)之前,該屬性纔會更改其值。 – octavioccl 2015-04-07 14:46:30