实体框架代码优先 - 是否可以让EF自动初始化子实体的集合?

时间:2012-02-10 22:16:58

标签: entity-framework-4 ef-code-first

假设我的模型中有这些:

public class Foo {
 public virtual Guid Id {get; set; }
 public virtual ICollection<Bar> Bars { get; set; }
}
public class Bar {
 public virtual Guid Id {get; set; }
 public virtual Guid FooId {get; set; }
 public virtual Foo Foo {get; set; }
}

有没有办法让EF在创建新的Foo和添加Bar时自动创建Foo.Bars集合?

var foo = dbContext.Foos.Create();
foo.Bars.Add(new Bar());

我知道我可以自己初始化这个集合(无论是在Foo的构造函数中还是在我创建它时,但我想知道是否有任何方法可以让EF去做它。

1 个答案:

答案 0 :(得分:1)

Framework没有为此提供任何开箱即用的功能。你必须为此编写自己的方法。

public class FooService
{
    ......

    Public Foo Create()
    {
        var foo = dbContext.Foos.Create();
        foo.Bars.Add(new Bar());

        return foo;
    }

    .......
}