簡體   English   中英

如何在Where子句中編寫具有組合條件AND / OR的查詢?

[英]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#,因此您需要對OR使用C#語法,即||。 (條件OR運算符)

 (u.UserName == User.Identity.Name || jL.JobId == 0)

您想使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM