[英]How on write a query with combination condition AND/OR in Where Clause?
var query = from uM in db.aspnet_Memberships
join uD in db.UserDetails
on uM.UserId equals uD.UserId
join jL in db.JobLists
on uM.UserId equals jL.UserId
where (u.UserName == User.Identity.Name or jL.JobId==0)
它無法識別OR,我希望它始終返回JobId == 0。
我試過大寫,也試過括號((u.UserName == User.Identity.Name) OR (jL.JobId==0))
如果沒有OR,它會正常工作,這是語法編譯器錯誤。
如何在Where子句中編寫具有組合條件AND / OR的var查詢?
您想使用c#運算符
例如。
var query = from uM in db.aspnet_Memberships
join uD in db.UserDetails
on uM.UserId equals uD.UserId
join jL in db.JobLists
on uM.UserId equals jL.UserId
where (u.UserName == User.Identity.Name || jL.JobId==0)
使用C#語言的常規AND( &
/ &&
)和OR( |
/ ||
)運算符。
您需要使用|| 代替或。
(((u.UserName == User.Identity.Name)||(jL.JobId == 0))
我不確定您將如何獲得jobId,因為看起來您想進行左連接。 如果在jobLists表中不存在該用戶,則jL.jobId將為null,並且不返回任何內容。
有關左聯接的更多信息,請參見此頁面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.