【发布时间】:2014-03-19 17:34:01
【问题描述】:
我有一个 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 部分,我不知道为什么?
【问题讨论】:
-
忽略怎么办?你得到了哪些不应该得到的记录,或者没有得到你应该得到的记录?
-
您确定要
||而不是&&? -
除非
CurrentUser是null,否则指定的技术人员肯定总是“不是当前用户”或“非空”。我怀疑你想在这里&&- 换句话说,尚未解决的事件,并分配给当前用户以外的其他人。 -
@JonSkeet 否,因为一个事件可能属于多个不同的用户
-
@ASPCoder1450 那么分配的技术将不为空,所以条件通过了,它应该。