实体框架代理创建

Jay*_*ena 16 c# entity-framework-4.1

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

this.Configuration.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)

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

Lad*_*nka 17

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

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

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

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