实体框架在第1列之后返回列的零/空值

时间:2015-03-13 10:23:40

标签: asp.net-mvc entity-framework entity-framework-6

我正在使用EF6.1.2,数据库优先。

在一种情况下,这个linq to sql查询:

 var data = from dl in ctx.ObjectContext.DocumentLines.Where(drow => drow.DocumentId == documentId)
                       join di in ctx.ObjectContext.DocumentsInfoes on dl.DocumentId equals di.Id
                       join ba in ctx.ObjectContext.Addresses on dl.DeliveryAddressId equals ba.Id into tba
                       from xba in tba.DefaultIfEmpty()
                       join sc in ctx.ObjectContext.SalesCategories on dl.SalesCategoryId equals sc.Id into tsc
                       from xsc in tsc.DefaultIfEmpty()

                       select new { Line = dl, DocumentInfo = di, DeliveryAddress = xba, SalesCategory = xsc };

            var abc = data.ToList();

无效。

第一个文档行已正确绑定,但后续行具有一些NULL或零属性。如果我运行生成的SQL查询,则所有列都存在且正确。

这是Entity Framework中的错误吗?我已经下载了EF源码,我想介入它以试图了解发生了什么,但不知道从哪里开始寻找。

文档行表有一个时间戳版本列,用于并发目的。我已经阅读了一些类似的问题,其中时间戳列或其他列的问题(请参阅Entity Framework does not pull through data from some columns)可能导致后续列失败。

修改

在进一步调查中,似乎在对此代码的一次调用中显示了问题,我可以跳过var abc = data.ToList(); ,而不会在设置者中点击任何断点 DocumentLine实体的属性,在数据模型中。离奇。对代码的所有其他调用都会触及断点。为什么不加载实体?

0 个答案:

没有答案
相关问题