获取POCO实体的EF6代理

时间:2016-05-06 03:09:43

标签: c# .net entity-framework

所以我有代码创建了一个poco实体(来自反序列化JSON)。我希望为实体启用延迟加载,所以我希望实体框架包装我的POCO对象并给我一个可以延迟加载导航属性的EF代理。

我已经看到许多关于从EF代理获取基础poco实体的问题的答案,但没有给出相反的方法。给定一个poco实体,你如何创建一个包含它的EF代理?

...都

context.Set<TEntity>().Add(poco);

和...

context.Set<TEntity>().Attach(poco);

...返回poco实体是否有一个方法可以给我一个poco的代理?

当我通过...加载实体时,我能够获得代理实体并且延迟加载正常工作。

context.Set<TEntity>().Where(...)

1 个答案:

答案 0 :(得分:1)

除非您从上下文查询,否则不能延迟加载导航属性。如果您通过反序列化JSON加载实体,则需要使用显式加载。

//Example
context.Entry(poco).Reference(x => x.ReferenceProperty).Load();
context.Entry(poco).Collection(x => x.ReferenceCollection).Load();

https://msdn.microsoft.com/en-us/data/jj574232.aspx