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