EF 6.1 ProxyCreationEnabled和LazyLoadingEnabled之间的区别

时间:2014-09-08 08:22:04

标签: c# entity-framework

在DbContext中,您可以配置以下两个参数:

context.Configuration.ProxyCreationEnabled = true;
context.Configuration.LazyLoadingEnabled = true;

我的理解是,要启用延迟加载,您必须能够为实体创建代理。换句话说,两个参数都需要设置为true才能启用延迟加载。

1。为什么两个参数都存在?为什么要配置这两个参数?

2。以下配置会产生什么影响?

// Can't create proxies but can lazy load
context.Configuration.ProxyCreationEnabled = false;
context.Configuration.LazyLoadingEnabled = true;

// Can create proxies but can't lazy load
context.Configuration.ProxyCreationEnabled = true;
context.Configuration.LazyLoadingEnabled = false;

1 个答案:

答案 0 :(得分:9)

AFAIK:

  • 代理创建 true 和延迟加载 true =>
    • 更改跟踪
    • 延迟加载
  • 代理创建 true 和延迟加载 false =>
    • 更改跟踪
  • 代理创建错误和延迟加载 true =>
    • ...

参考(以及其他):msdn