我有这样的设计:
public class Employee {
//...
}
public class Company {
private IList<Employee> _employees;
public IList<Employee> Employees {
get { return _employees; }
set {
if (_employees == value) {
return;
}
_employees = value;
//Some logic here. Eg:
//Raise PropertyChanged
//Iterate over the new values to suscribe to some events, etc.
}
}
}
当我尝试做类似的事情时:
var employees = session.Query<Company>().Fetch(x => x.Employees).ToList();
它抛出一个LazyInitializationException
:
非法获取装载集合
我发现的唯一解决方法是将逻辑移动到一个方法,使该方法公开(和虚拟)并为 中的每个实例调用该方法employees
,但我不喜欢这样,因为我将从我的存储库中调用该方法。
有任何想法吗?