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查询?
答案 0 :(得分:3)
由于这是C#,您需要使用C#语法进行OR,即|| (The Conditional OR operator):
(u.UserName == User.Identity.Name || jL.JobId == 0)
答案 1 :(得分:2)
您想使用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)
答案 2 :(得分:0)
使用C#语言的普通AND(&
/ &&
)和OR(|
/ ||
)运算符。
答案 3 :(得分:0)
你需要使用||而不是或。
((u.UserName == User.Identity.Name)||(jL.JobId == 0))
我不知道你怎么会得到一份工作但是因为看起来你想要做一个左连接。如果jobLists表中不存在该用户,则jL.jobId将为null,并且不返回任何内容。
有关左连接的详情,请参阅this page