所以我有代码创建了一个poco实体(来自反序列化JSON)。我希望为实体启用延迟加载,所以我希望实体框架包装我的POCO对象并给我一个可以延迟加载导航属性的EF代理。
我已经看到许多关于从EF代理获取基础poco实体的问题的答案,但没有给出相反的方法。给定一个poco实体,你如何创建一个包含它的EF代理?
...都
context.Set<TEntity>().Add(poco);
和...
context.Set<TEntity>().Attach(poco);
...返回poco实体是否有一个方法可以给我一个poco的代理?
当我通过...加载实体时,我能够获得代理实体并且延迟加载正常工作。
context.Set<TEntity>().Where(...)
答案 0 :(得分:1)
除非您从上下文查询,否则不能延迟加载导航属性。如果您通过反序列化JSON加载实体,则需要使用显式加载。
//Example
context.Entry(poco).Reference(x => x.ReferenceProperty).Load();
context.Entry(poco).Collection(x => x.ReferenceCollection).Load();