我想排除存在于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)'我自己,而不是使用嵌入式查询表达式。 –