[c#]linq 查询或和运算符在一起

标签: Linq SQLServer C#
发布时间: 2017/2/26 16:03:55
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要在 linq 查询中运行多个条件或,和运营商。先来比较三个条件,由分隔的 | |运算符,一旦条件之一为真我还需要看到检查是否属实,我使用 & & 运算符,但得到的所有结果

因此,例如从以下查询,如果 ModuleLead = = ContextSession.StaffID,然后记录都必须有 ClinicalSupervisorCheck = = true

var query_b = (from b in activeAssessmentWithRemidiation
                where b.AssessorID == ContextSession.StaffID 
                   || b.ModuleLead == ContextSession.StaffID 
                   && b.ClinicalSupervisorCheck == true 
                   || b.SeniorStaffID == ContextSession.StaffID 
                   && b.ModuleLeadCheck==true
                   select b).ToList();

上述查询运行在以下表中的记录

enter image description here

解决方法 1:

它可能是值得在 parathensis,例如包装和条件︰

    var query_b = (from b in activeAssessmentWithRemidiation
                   where b.AssessorID == ContextSession.StaffID || 
                  (b.ModuleLead == ContextSession.StaffID && b.ClinicalSupervisorCheck == true) ||
                  (b.SeniorStaffID == ContextSession.StaffID && b.ModuleLeadCheck==true)
                   select b).ToList();
官方微信
官方QQ群
31647020