开发者

Linq-to-sql Not Contains or Not in?

I'm building a poll widget. I've 2 tables, call them Polls and PollsCompleted. I need to do a linq query to get all the Polls that do not exist for a given user in PollsCompleted.

I have the following sets:

For Polls Where Active == True

For PollsCompleted Where UserId == ThisUse开发者_开发问答rId Where PollId = Polls.Id

Now I need to get all Polls that do not exist in PollsCompleted. I need an example for this using either a single or multiple queries. I've tried to break it down into 2 queries.

Basically, I've 2 IQueryables of type T and T1. I want to take all T's where T.ID does not exist in T1.ParentId.


T.Where(x => ! T1.Select(y => y.ParentID).Contains(x.ID))

In Linq you often work from the bottom up. Here we first get a collection of all the parentIDs in T1 -- the T1.Select(...) part. Then we create a where clause that selects all of the Ts whose IDs are not contained in that set.

Note that the result is a query. To materialize it, use ToList() or similar on the statement above.


Use Except. That will work in this case.

For your reference Enumerable.Except Method

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜