2011-03-24 113 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();