我创建了一个DLL
程序集,其中包含edmx
northwind
数据库。
我通过linqpad创建了对该dll的引用,我确实看到了db并且能够运行查询。
但是 - 我想测试DeferredLoadingEnabled
属性的行为,我需要通过上下文变量来设置它。
例如
ctx.DeferredLoadingEnabled = false;
但我如何访问ctx
?
linqpad为我生成它,我需要访问它。
答案 0 :(得分:9)
在Entity Framework 5中,等效属性为:
ctx.Configuration.LazyLoadingEnabled = false;
如果你在LINQPad中,那么你已经在上下文中了,所以你可以说:
Configuration.LazyLoadingEnabled = false;
但是当我将代码从Visual Studio复制到LINQPad时,我常常只在顶部添加一行,以便所有代码都一样:
var ctx = this;
答案 1 :(得分:4)
DeferredLoadingEnabled
中没有Entity Framework
属性 - 它属于Linq to SQL
,而非Linq to entities
(EF)。
实体框架默认延迟加载。链接表将在访问时加载,或者当您自己显式加载它们或直接使用第一个资源加载它们时(加载加载)。
答案 2 :(得分:3)
使用Linqpad时,您实际上是在中的ObjectContext。 只需输入:
this.
您可以访问 ObejctContext上的属性。
(另请:确保使用“C#Statement”)