我正在尝试按如下方式制作LINQ语句:
结果应该在两个日期(今天基本上)之间进行 结果应该有一个等于false的“batchstatus”列(尚未验证) 结果应该有一个等于true的“就绪”列(准备好进行验证)。
因此,验证者可以查看今天的所有数据,无论其是否已经过验证,但是不应该看到用户还没有准备好被看到。
我尝试了几种不同的方式,例如:
Dim p = From t In db.batches _
Where t.bDate > day1 And t.bDate < day2 And t.Ready = True Or t.BatchStatus = False _
Order By t.BatchStatus Ascending _
Select t
请帮我养头发;我现在有一把&amp;我不知道我能把它拖出来多久了!!!
谢谢!
答案 0 :(得分:1)
使用括号。它会让事情变得更简单很多。此外,您可以使用Let
子句使查询更简单,有效地在查询中提供“局部变量”。试试这个 - 语法可能略微偏离(我不是VB人),逻辑很可能不是你想要的,但它更容易理解IMO,所以应该更容易修改。
Dim p = From t In db.batches _
Let createdToday = t.bDate > day1 And t.bDate < day2 _
Where createdToday And (t.Ready Or Not t.BatchStatus) _
Order By t.BatchStatus Ascending
答案 1 :(得分:1)
怎么样:
Dim p = From t In db.batches _
Where (t.bDate.Date = DateTime.Today Or t.BatchStatus = False) _
And t.Ready = True _
Order By t.BatchStatus Ascending _
Select t
答案 2 :(得分:0)
谢谢Jon!在我的案例中它是括号:
Dim p = From t In db.batches _
Where (t.bDate > day1 And t.bDate < day2 And t.Ready = True) Or (t.BatchStatus = False And t.Ready = True) _
Order By t.BatchStatus Ascending _
Select t
再次感谢......头发慢慢地从死亡之握中移除......