我正在使用EF6 Code First,我有一个示例类
public class Department
{
public Department()
{
Workers = new List<Employee>();
}
public int Id { get; set; }
public virtual List<Employee> Workers { get; set; }
}
我真的需要那个可怕的构造函数吗?
我的意思是,该集合不会通过魔法构建自己,但是我编写代码的方式使得所有EF实体始终是代理(当我需要新对象时在DbSets上使用Create())。所以我首先期望那些“懒惰”的属性只是为了初始化自己。毕竟,这就是代理的用途,例如,我使用Castle.Proxy做这些事情。但似乎这个功能不包含在EF中,或者我错了?
我知道我可以为这个集合的懒惰初始化编写我自己看起来很怪异的属性,然后在我去的任何地方复制它,但我可能会把它全部放在构造函数中。我的目标是让我的POCO看起来很平淡。
也许有办法编写一些自定义拦截器,如果它是null,它将首先初始化该集合?