在实体框架4.1中,当创建POCO时,应该对类进行编码以初始化许多关系,还是有一些理由允许实体框架控制这些属性?
public class Portfolio
{
private ICollection<Visit> _visits;
public virtual ICollection<Visit> Visits
{
get
{
if (_visits == null)
{
_visits = new List<Visit>();
}
return _visits;
}
set
{
_visits = value;
}
}
}
或
public class Portfolio
{
public virtual ICollection<Visit> Visits
{
get;
set;
}
}
还有更好的模式吗?
第一个版本是正确的。当你创建一个新的实体时,它将允许你初始化集合,但同时,它将允许EF在物化从DB加载的实体时初始化集合,并通过动态代理进行延迟加载。