[英]Entity Framework - lazy loading failing but eager loading fine - how to fix/debug?
我正在针对SQL Server 2012数据库使用实体框架4.3.1,并且我有一个包含这些表的数据库(还有更多但相关位在下面):
Customer
CustomerNumber nvarchar(10) not null primary key
SalesDocument
SalesDocumentNumber nvarchar(10) not null primary key
CustomerNumber nvarchar(10) not null
我正在运行以下代码片段:
const string docNumber = "111348718";
IQueryable<SalesDocument> docs = factory.CreateSalesDocumentRepository().All;
var ssd = docs.Single(s => s.SalesDocumentNumber.Equals(docNumber));
if (ssd.Customer == null)
Console.WriteLine("NOOOOOOO");
ssd = docs
.Include(s => s.Customer)
.Single(s => s.SalesDocumentNumber.Equals(docNumber));
if (ssd.Customer == null)
Console.WriteLine("YESSSSSS");
而且我只打印了 NOOOOOOO。
因此,似乎延迟加载不起作用,但急切加载却起作用。
在这种情况下,给出的内容以及在该情况下我该如何调试(可能导致此失败的原因是什么-对我来说,这就像是EF中的错误,但我一直在声明并把整个蒸堆扔掉的窗户)? 如果第二个配置正常,肯定可以配置...?
我不是要教您吮鸡蛋,但是您是否在ObjectContext
启用了LazyLoading?
即:在ObjectContext构造函数中
this.ContextOptions.LazyLoadingEnabled = true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.