2011-03-24 108 views
0

如果我有一個具有另一個實體的集合屬性的實體。添加新實體及其相關實體的最佳方式是什麼?我遇到的問題是集合最初是空的。EF 4.1代碼首先添加到外鍵集合

  var form = new Form() 
      { 
       Name = "TestForm" 
      }; 
      ctx.Forms.Add(form); 

      var formField = new FormField() 
      { 
       Name = "TestField" 
      }; 
      form.FormFields.Add(formField); 

      ctx.SaveChanges(); 

上面的form.FormFields屬性爲空,所以我得到一個異常。我知道我可以在另一個方向上設置關係,但是我沒有在FormFields上定義一個Form屬性(我真的不想)。

那麼對此最乾淨的解決方案是什麼?

+0

我應該提到的是,FormFields屬性聲明如下:公共虛擬的IList FormFields {獲得;組; } – JasonBSteele 2011-03-24 15:04:28

回答

0

最簡單的辦法是初始化這樣的集合:

var form = new Form() { 
    Name = "TestForm" 
    }; 
ctx.Forms.Add(form); 
var formField = new FormField() { 
    Name = "TestField" 
}; 
if(form.FormFields == null) 
    form.FormFields = new List<FormField>(); 
form.FormFields.Add(formField); 
ctx.SaveChanges();