繁体   English   中英

实体框架代理创建

[英]Entity Framework Proxy creation

我们可以通过使用停止在上下文构造函数中创建代理

this.Configuration.ProxyCreationEnabled = false;

在 EF 4.1 中创建代理有哪些优点和缺点?

代理是两个功能所必需的:

  • 延迟加载 - 导航属性在第一次访问时加载
  • 动态更改跟踪 - 如果您修改实体中的任何属性,则会通知上下文有关此更改并设置实体的 state。 如果不使用动态更改跟踪,则上下文必须使用快照更改跟踪,这意味着在保存之前发现所有更改 = 探索所有属性,即使它们没有更改。

这两种技术都有其他要求:

  • 延迟加载 - 实体中的所有导航属性都必须是virtual的。 必须启用延迟加载。
  • 动态更改跟踪 - 所有映射的属性都必须是virtual的。

除了上一个答案,运行时使用您的 POCO class 使用反射并创建一个动态代理 class 继承您的 POCO class。 因此它将在运行时添加那些功能 + EntityObject 功能,这将有助于动态代理启用延迟加载和动态更改跟踪。

暂无
暂无

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

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