C# 在Linqpad中获取实体框架上下文?

C# 在Linqpad中获取实体框架上下文?,c#,entity-framework,linqpad,C#,Entity Framework,Linqpad,我已经为northwind数据库创建了一个DLL程序集,其中包含edmx 我通过linqpad创建了对该dll的引用,我确实看到了数据库并能够运行查询 但是-我想测试delferredLoadingEnabled属性的行为,我需要通过上下文变量设置它 乙二醇 但是我怎样才能访问ctx linqpad为我生成它,我需要访问它。使用linqpad时,您实际上处于ObjectContext内部。 仅键入: this. 您可以访问ObejctContext上的属性 (另外:确保使用“C#语句”)在实体

我已经为
northwind
数据库创建了一个
DLL
程序集,其中包含
edmx

我通过linqpad创建了对该dll的引用,我确实看到了数据库并能够运行查询

但是-我想测试
delferredLoadingEnabled
属性的行为,我需要通过上下文变量设置它

乙二醇

但是我怎样才能访问ctx


linqpad为我生成它,我需要访问它。

使用linqpad时,您实际上处于ObjectContext内部。 仅键入:

this.
您可以访问ObejctContext上的属性


(另外:确保使用“C#语句”)

实体框架中没有
延迟加载启用的
属性-它是
Linq to SQL
的一部分,而不是
Linq to entities
(EF)


默认情况下,实体框架已延迟加载。链接表将在access上加载,或您自己显式加载,或直接使用第一个资源加载(即时加载)时加载。

在Entity Framework 5中,等效属性为:

ctx.Configuration.LazyLoadingEnabled = false;
如果你在LINQPad,你已经在上下文中,所以你可以说:

Configuration.LazyLoadingEnabled = false;
但是,当我将代码从Visual Studio复制到LINQPad时,我通常只在顶部添加一行代码,以便所有代码的工作方式相同:

var ctx = this;

稍等:)我正在启动我的机器MM我的EF模型没有
DeferredLoadingEnabled
你确定它应该直接在ObejctContext上-可能在
ContextOptions
属性+1中指出
ObjectContext
上没有
DeferredLoadingEnabled
属性:)我瞎了吗@罗伊纳米尔,你没有被束缚住。但是L2S是SQL的Linq,而不是我知道的实体的Linq。但是它说:“你可以让EF像L2S一样工作”…xx.DeferredLoadingEnabled=true;也许我不明白那里的行???@RoyiNamir EF的行为类似于L2S,当您在L2S中将此属性设置为true时。如果不将其设置为true,EF的行为将与之不同。但是书中的句子写得很混乱。但是如果我把它设为false,它不会产生命令。我怎样才能让它显示订单?@RoyiNamir:禁用延迟加载与强制快速加载不同。看见
var ctx = this;