我正在开发一个WPF应用程序,架构师是
WPF-> WCF-> DAL
问题是当我调用WCF方法时,它返回对象。 WCF级别以上的所有内容都可以正常工作,但在返回对象时,在WCF之后我的导航属性设置为null。
我将返回Department类的对象(POCO)对象,其导航属性为Employees。我验证了[DataMember]属性,但事实并非如此。但是当它到达MainUI时,其Employees属性设置为null。
我的导航属性的代码看起来像那样
由于
答案 0 :(得分:3)
我认为这是因为导航属性是延迟加载的。当您尝试访问它们时,无法加载它们,因为上下文已被释放。加载主属性时,应该热切地或明确地加载它们。
渴望加载:
from d in context.Department.Include("Employees")
select d;
明确加载:
var departments = (from d in context.Department
select d).ToList();
departments.ForEach(e => e.EmployeesReference.Load());
编辑问题后编辑
问题可能在于:
department.FirstOrDefault().Employees = employees.ToFixupCollection();
尝试将其更改为:
department.FirstOrDefault().Employees = employees.ToList<Employee>();