我試圖與實體框架和代碼優先實現簡單的一對多關係。 我設置一個簡單的方法我的父類:實體框架 - 將子對象添加到父項
public class Parent
{
[Key]
public long ParentId { get; set; }
public ICollection<Child> Child { get; set; }
public Parent()
{
Child = new HashSet<Child>();
}
}
當然,這是一個簡化版本。 我的子類是父那樣簡單:
public class Child
{
[Key]
public long ChildId { get; set; }
public int ParentId { get; set; }
public virtual Parent parent { get; set; }
}
我的控制器是由EF生成的。 問題是,當我在post方法中創建一個具有父級ID的子級時,該ID在數據庫中設置,但是當我獲得父級時,子級列表爲空。
我已經嘗試添加父的孩子在控制器像這樣:
db.parent.find(child.parentId).Child.Add(child);
這顯然是沒有效果的。
子對象中的父項爲空,父項中的子項列表爲空。
我怎樣才能得到父母的收藏中的孩子?
謝謝!
你叫context.SaveChanges()? – amyn
您需要將您的「兒童」屬性更改爲「public virtual ICollection Child {get;組; }' –
嗨! 感謝您的關注,我確實打電話給SaveChanges()。 並添加虛擬沒有幫助我的問題。我可能會補充說,我關閉了代理創建,以便序列化結果。 感謝您的編輯了。 –