【发布时间】:2013-02-05 14:54:17
【问题描述】:
使用 EntityFramwork(代码优先)建模 1-n 关系的常用方法是使用虚拟集合属性,例如:
class Project {
public virtual ICollection<Remark> Remarks { get; set; }
}
class Remark {
public virtual int ProjectId { get; set; }
public virtual Project Project {get; set; }
}
由于Remarks集合最初是null,所以我采取以下方法
private ICollection<Remark> _remarks;
public virtual ICollection<Remark> {
get {
if (_remarks == null)
_remarks = new List<Remark>();
return _remark;
}
set {
_remarks = value;
}
}
为了在新创建的Project 对象上使用Remarks.Add 方法,而无需显式设置属性。
Afaik EF 内部派生自我的类并覆盖虚拟导航属性以支持延迟加载。
我的问题:我需要定义集合属性的 setter 吗?英孚需要吗?我宁愿只公开 getter 并让类在内部管理集合。
编辑我只是在我的帖子发布后才注意到这个related question,所以它可能只是重复的......
【问题讨论】:
标签: .net entity-framework setter navigation-properties