实体框架4.1代码优先 - 应初始化许多关系ICollections

Swa*_*aff 4 c# ef-code-first entity-framework-4.1

在Entity Framework 4.1中创建POCO时,是否应该对类进行编码以初始化Many关系,或者是否有某些理由允许Entity Framework控制这些属性?

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class Portfolio 
{
    public virtual ICollection<Visit> Visits
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

还有更好的模式吗?

Lad*_*nka 5

第一个版本是正确的.它允许您在创建新实体时初始化集合,但同时它允许EF在实现从DB加载的实体时初始化集合,并通过动态代理对其进行包装以进行延迟加载.