【问题标题】:should I initialize collections in the constructor我应该在构造函数中初始化集合吗
【发布时间】:2011-07-01 20:02:19
【问题描述】:

我在FooBar 之间有many-to-many 关系

这是一个简化的 Foo

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

我想保存一个新的 foo 并附加一些条:

var foo = new Foo();
foo.Bars.Add(bar1); //I'll get an error that if Bars is not initialized
repo.Insert(foo);
repo.SaveChanges();

我应该在构造函数中初始化 Bars,应该这样做吗? (使用 EF4 CTP5 代码优先)

【问题讨论】:

标签: entity-framework-4


【解决方案1】:

我确实会在构造函数中初始化集合(如果实际上总是需要集合),或者会在首次需要集合时更改 getter 以进行初始化(如果并不总是需要集合)。

【讨论】:

  • 好吧,当我不进行插入时,EF 会用 Bars 填充它,而无需我进行初始化
  • 那么做惰性初始化可能是聪明的(在getter中,如果Bars没有初始化,创建一个新的集合)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 2018-08-02
相关资源
最近更新 更多