8

我创建了一个DLL包含edmxfornorthwind数据库的程序集。

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

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

例如

ctx.DeferredLoadingEnabled = false;

但是我怎样才能访问ctx

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

4

3 回答 3

12

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

ctx.Configuration.LazyLoadingEnabled = false;

如果你在 LINQPad 中,你已经在上下文中,所以你可以说:

Configuration.LazyLoadingEnabled = false;

但是当我将代码从 Visual Studio 复制到 LINQPad 时,我通常会在顶部添加一行,这样所有代码的工作方式都相同:

var ctx = this;
于 2013-09-24T18:08:35.027 回答
5

使用 Linqpad 时,您实际上是ObjectContext 中。只需输入:

this.

并且您可以访问您的ObejctContext 上的属性。

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

于 2013-09-24T17:34:41.690 回答
5

没有DeferredLoadingEnabled属性Entity Framework- 它是 的一部分Linq to SQL,而不是Linq to entities(EF)。

实体框架默认延迟加载。链接表将在访问时加载,或者当您自己显式加载它们或使用第一个资源直接加载它们时(急切加载)。

于 2013-09-24T17:46:54.023 回答