-3
这对LINQ到SQL两个LINQ语句应返回相同的事情并不
这是第一个查询:
var rc = from site in customer.OrganizationSites
from gt in site.GeneralTransactions
where (gt.DealPackage.PackageTransactionDetail.StartDate <= periodStart
&& gt.DealPackage.PackageTransactionDetail.EndDate >= periodEnd)
|| (gt.DealPackage.PackageTransactionDetail.StartDate >= periodStart
&& gt.DealPackage.PackageTransactionDetail.EndDate <= periodEnd)
&& gt.IsVerified.HasValue
&& gt.IsVerified.Value
&& (!gt.Invoices.Any()
|| !gt.Invoices.Any(i => i.StartDate >= periodStart && i.EndDate <= periodEnd))
select gt;
这里是第二:
var rc = from site in customer.OrganizationSites
from gt in site.GeneralTransactions
where (gt.DealPackage.PackageTransactionDetail.StartDate <= periodStart
&& gt.DealPackage.PackageTransactionDetail.EndDate >= periodEnd)
|| (gt.DealPackage.PackageTransactionDetail.StartDate >= periodStart
&& gt.DealPackage.PackageTransactionDetail.EndDate <= periodEnd)
&& gt.IsVerified.HasValue
&& gt.IsVerified.Value
select gt;
rc = from gt in rc
where !gt.Invoices.Any()
|| !gt.Invoices.Any(i => i.StartDate >= periodStart && i.EndDate <= periodEnd)
select gt;
的第二个简单地做了两个步骤中的第一个,但第二个返回我实际上正在寻找的东西(在这种情况下,什么都没有),我想我在某个地方犯了一个错误,但看不到它在哪里。如果有人能指出原因,我将不胜感激。
这是LINQ to Objects吗? LINQ to SQL? EF?还有别的吗?如果它最终转换为SQL,那么您是否在每种情况下查看了生成的SQL?你有没有尝试删除部分查询来简化它们? –
围绕第一个过滤器的第一个查询中有更多的括号......您是否尝试使两个*完全相同? (我不想开始推理这里的优先级...) –
LINQ to SQL。我没有真正看过它生成的查询。这更验证LINQ语句实际上是相同的。 –