2014-03-19 55 views
0

我這是在錯誤的結果拉LINQ查詢。我的猜測是,它是這樣做的,因爲我缺少一個括號或其他東西。LINQ查詢不正確的結果使用AND和OR

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部分,我不知道爲什麼?

+0

忽略了怎麼樣?你有什麼記錄你不應該,或沒有得到你應該? – Servy

+2

你確定要'''而不是'&&'? – erdinger

+1

除非'CurrentUser'是'null',想必指派技術人員將*總是*或者是「不是當前用戶」或「不空」。我懷疑你想''&&這裏 - 換句話說,它並沒有解決事件,並分配給除當前用戶之外的其他人。 –

回答

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) 

這會給你所需的記錄