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

时间:2011-04-18 13:40:46

标签: 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;
        }
    }
}

或者

public class Portfolio 
{
    public virtual ICollection<Visit> Visits
    {
        get;
        set;
    }
}

还有更好的模式吗?

1 个答案:

答案 0 :(得分:5)

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