【发布时间】:2014-04-07 06:13:37
【问题描述】:
我的场景是我有一个对象FOO,它上面有一个virtual List<bar> 属性。这是由 EF 自动生成的。
加载FOO 后,我处理了数据上下文,我通过DTO 将FOO 变成了一个业务对象。例如
var newFOO = FOO_Dto.change(FOO);
FOO_Dto.change 内部我想检查虚拟列表属性是否为空/null。 我了解关闭 ObjectContext 并检查导航属性会引发错误。在我的数据层中,有时我会返回带有列表的 FOO 和不带列表的 FOO。
我的问题是如何检查导航属性以查看列表是否已填充并避免当前生成的 ObjectContext 错误
非常感谢!!
编辑
在 cmets 部分,我特意希望在检查是否加载了 List<Bar> 属性之前关闭上下文。
【问题讨论】:
-
在释放上下文之前调用
change方法。 -
@hami770 我看到的唯一方法是上下文中的
changetracker -
@haim770 你能扩展一下,也许提供一些链接? DbContexts methods中的“改变”方法我没见过
-
我在你的
FOO_Dto.change(FOO)之后写了change。DbContext中没有change方法。
标签: c# entity-framework