作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的上下文对象(构造函数)上有这个:
this.Configuration.UseDatabaseNullSemantics = true;
但即使有了这个集合,这个查询:
var query = (from i in _repo.Invoices
join o in _repo.Orders on i.orderid equals o.orderid
join o2 in _repo.Orders on o.linkedorderid equals o2.linkedorderid into leftOrders
from lo in leftOrders.DefaultIfEmpty()
where invoiceIds.Contains(i.invoiceid)
select new
{
i, lo
}).ToList();
返回此 SQL:
SELECT
[Extent1].[invoiceid] AS [invoiceid],
[Extent1].[custid] AS [custid],
[Extent1].[orderid] AS [orderid],
[Extent1].[orderamount] AS [orderamount],
[Extent1].[invoiceamount] AS [invoiceamount],
[Extent1].[paidamount] AS [paidamount],
[Extent1].[paidstatus] AS [paidstatus],
[Extent1].[printdate] AS [printdate],
[Extent1].[updateddate] AS [updateddate]
FROM [dbo].[invoices] AS [Extent1]
INNER JOIN [dbo].[orders] AS [Extent2] ON [Extent1].[orderid] = [Extent2].[orderid]
LEFT JOIN [dbo].[orders] AS [Extent3] ON ([Extent2].[linkedorderid] = [Extent3].[linkedorderid]) OR (([Extent2].[linkedorderid] IS NULL) AND ([Extent3].[linkedorderid] IS NULL))
WHERE [Extent1].[invoiceid] IN (3098489, 3123185, 3156838)
不难看出我收到了 System.OutOfException 错误,因为我有大量的 linkedorderid 等于 NULL 的订单。
如果我删除 OR (([Extent2].[linkedorderid] IS NULL) AND ([Extent3].[linkedorderid] IS NULL))
查询运行正常并返回所有发票 child 工单...
知道如何解决这个问题吗?
最佳答案
这个有用吗?如果删除 (or (is null and is null)) 子句时发布的查询是正确的,那么我认为这将执行相同的查询。 (这假设连接中不存在逻辑错误,如其他帖子中所建议的。)
var query = (from i in _repo.Invoices
from o in _repo.Orders.Where(c => c.orderid == i.orderid)
from o2 in _repo.Orders.Where(c => c.linkedorderid == o.linkedorderid).DefaultIfEmpty()
where invoiceIds.Contains(i.invoiceid)
select new
{
i, o2
}).ToList();
关于sql - UseDatabaseNullSemantics 仍然生成 NULL 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35900309/
我的上下文对象(构造函数)上有这个: this.Configuration.UseDatabaseNullSemantics = true; 但即使有了这个集合,这个查询: var query = (
我是一名优秀的程序员,十分优秀!