EF 6.1 ProxyCreationEnabled和LazyLoadingEnabled之间的区别

在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; 

据我所知:

  • 代理创建true和延迟加载true =>
    • 改变跟踪
    • 懒加载
  • 代理创建true和延迟加载false =>
    • 改变跟踪
  • 代理创建false和延迟加载true =>

参考(其中包括): msdn