EF 4.1 Code First首先添加到外键集合

时间:2011-03-24 14:47:18

标签: entity-framework-ctp5 ef4-code-only

如果我有一个具有另一个实体的集合属性的实体。添加新实体及其相关实体的最佳方式是什么?我遇到的问题是该集合最初为空。

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

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

            ctx.SaveChanges();

上面的form.FormFields属性为null,因此我得到了一个异常。我知道我可以在另一个方向设置关系,但我没有在FormFields上定义Form属性(我真的不想)。

那么最干净的解决办法是什么呢?

1 个答案:

答案 0 :(得分: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();