背景:
我正在使用 EF4 和ObjectContext
. 为了优化复杂对象层次结构的检索,我手动执行数据库查询,然后使用ObjectContext.Translatey<T>(DataReader, entitySetName, mergeOptions.AppendOnly)
将数据行转换为实体。然后我将实体附加到ObjectContext
withAttach
方法。这也修复了实体之间的关系。
问题: 加载并设置完所有内容后,我尝试从父实体导航到子实体(例如 Parent.Childs.First()),但 EF 命中数据库以加载孩子,即使所有子实体都是已经存在于 ObjectContext 和 EntitySet 中。看起来原因是 parent.Childs.IsLoaded 设置为 false 这使 EF 认为它仍然需要加载关系。
问题: 如何告诉 EF EntitySet 已经加载?
是否有支持的方式设置RelatedEnd.IsLoaded
为 true。我不想搞乱调用RelatedEnd.SetIsLoaded
内部方法。
我在这里发现了一个 smilar 问题,但它与 DbContext 相关并且没有令人满意的答案;-)
马特拉