我想排除存在於db.AdminAdjusterStatus
中的a.id
的項目。LINQ「not in」not working
from u in db.Users
join a in db.Adjusters on u.id equals a.userID
where u.userType.ToLower() == "adjuster"
&& !(from x in db.AdminAdjusterStatus select x.adjusterID).Contains(a.id)
select new AdjusterProfileStatusItem { user = u, adjuster = a }
上面的代碼說,「哪裏都不包含在db.AdminAdjusterStatus.adjusterID
a.id
的問題是,它不工作,我有這兩個項目在db.AdminAdjusterStatus
:。
A9EC05B5-651D-4AA7-8275-1F6BFE212C03 1BDE55D9-ED0A-4854-9D5F-B89DB17F02D2
而且,LINQ查詢給我:
A9EC05B5-651D-4AA7-8275-1F6BFE212C03 1BDE55D9-ED0A-4854-9D5F-B89DB17F02D2 e21ff49c-9505-495d-b4a3-c259ee3459d6
Whe REAS,它應該只給我:
e21ff49c-9505-495d-b4a3-c259ee3459d6
如果您打算合理縮進,您的查詢將會很容易閱讀。 –
@JonSkeet對不起,我不知道如何縮進它,但我願意接受建議。 – user1477388
現在編輯它。我個人只是使用'!db.AdminAdjusterStatus.Select(x => x.adjusterID).Contains(a.id)'我自己,而不是使用嵌入式查詢表達式。 –