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;