这适用于LINQ to SQL
这是第一个查询:
While(true)\\ must constantly monitor units
{
if(units.count< 10)
{
\\ launch units
}
thread.sleep(100); \\ to avoid 100% CPU usage
}
这是第二个:
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;
第二个只是分两个步骤完成第一个,但第二个返回我实际寻找的东西(在这种情况下,没有),我想我在某个地方犯了一个错误但是看不到哪里。如果有人能指出原因,我将不胜感激。
答案 0 :(得分:2)
您的第一个查询有一个顶级||
。合并a || b
和c
应该(a || b) && c
,但你要a || b && c
,意思是a || (b && c)
。