繁体   English   中英

POCO / PROXY禁用延迟加载

[英]POCO/PROXY Disabling Lazy Loading

在第16.1.3节以及第16.2.4节“ 行动中的实体框架4 ”一书中对此进行了说明。

如果您有代理实例,请记住在序列化之前禁用延迟加载,否则最终将不必要的数据发送到客户端。

但是,作者从未说过如何禁用延迟加载。 在我自己的搜索中,我听说过ContextOptions.LazyLoadingEnabled。 是这样的“方式”吗? 有不止一种方法(除了禁用代理生成)?

我读过一篇文章 ,其中LazyLoadingEnabled标志仅适用于EntityObject实体,不适用于POCO实体:

关闭延迟加载现在将允许您的类正确序列化。 注意,这是在使用标准实体框架类的情况。 如果您使用的是POCO,则必须做一些稍有不同的事情。

使用POCO,默认情况下,实体框架将创建代理类,从而允许像延迟加载这样的事情与POCO一起使用。 此代理基本上创建一个代理对象,该对象是位于上下文和POCO对象之间的完整的Entity Framework对象。 当将POCO与WCF(或任何序列化)一起使用时,仅关闭延迟加载不会削减它。 您必须关闭代理创建以确保您的类将正确序列化

我怀疑以上评论简直是错误的。

是的, ContextOptions.LazyLoadingEnabled是“方法”。 序列化问题是相关的,但有所不同。 代理具有不同的运行时类型。 那会导致序列化。 与延迟加载的唯一关系是纯(非代理)POCO不会进行延迟加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM