EF 4.1 Code First 添加到外键集合
Posted
技术标签:
【中文标题】EF 4.1 Code First 添加到外键集合【英文标题】:EF 4.1 Code First adding to a foreign key collection 【发布时间】:2011-03-24 14:47:17 【问题描述】:如果我有一个具有另一个实体的集合属性的实体。添加新实体及其相关实体的最佳方法是什么?我遇到的问题是该集合最初为空。
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 属性(我真的不想这样做)。
那么,最干净的解决方案是什么?
【问题讨论】:
我应该提到 FormFields 属性是这样声明的: public virtual IList最简单的解决方案是像这样初始化集合:
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();
【讨论】:
以上是关于EF 4.1 Code First 添加到外键集合的主要内容,如果未能解决你的问题,请参考以下文章
EF 4.1 中使用 Code First 的 ComplexType 集合属性