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