LINQ使用AND和AND OR查询不正确的结果

时间:2014-03-19 17:34:02

标签: c# asp.net sql linq

我有一个linq查询,它会导致错误的结果。我猜这是因为我错过了一个支架或其他东西。

var CurrentlyActiveIncidents = from b in db.Logs 
    join dc in db.Incidents 
    on b.LogID equals dc.LogID 
    where b.DateTimeResolved == null && 
        (dc.AssignedTechnician != null  || 
        dc.AssignedTechnician != CurrentUser)

我想要datetimeresolved == null和指定技术人员不为空或未分配给当前用户的所有事件。目前查询忽略了!= currentuser部分,我不知道为什么?

1 个答案:

答案 0 :(得分:1)

因为您需要所有已分配技术人员的记录!= null和!=当前用户 所以你需要和条件

var CurrentlyActiveIncidents = from b in db.Logs 
join dc in db.Incidents 
on b.LogID equals dc.LogID 
where b.DateTimeResolved == null && 
    (dc.AssignedTechnician != null  && 
    dc.AssignedTechnician != CurrentUser)

这将为您提供所需的记录