查询,其中id不在列表中

Dof*_*ofs 12 nhibernate queryover

我一直在努力解决这个问题,所以我希望你们中的一些QueryOver专家可以提供帮助.

我有一个博客帖子列表.您可以在每篇博文上投票,我希望(除其他外)收到用户尚未投票的帖子列表.

首先我想做的事情如下:

Session.QueryOver<BlogPost>()
.WhereRestrictionOn(bp => bp.Id)
.NotIn(existingBlogPostVotes);
Run Code Online (Sandbox Code Playgroud)

(existingBlogPostVoteIds是投票博客帖子的ID)

但是在QueryOver框架中不存在这种情况.

我发现我可以在Criteria中这样做:

var crit =
     Session.CreateCriteria<BlogPost>()
     .Add(Restrictions.Not(Restrictions.In("Id",existingBlogPostVotes)));
Run Code Online (Sandbox Code Playgroud)

但我想在QueryOver而不是Criteria中这样做.

如何在QueryOver中完成?

Col*_*e W 24

怎么样Not.IsIn():

   Session.QueryOver<BlogPost>()
          .WhereRestrictionOn(bp => bp.Id)
          .Not.IsIn(existingBlogPostVotes);
Run Code Online (Sandbox Code Playgroud)

可选地,这也可以在Linq提供者中完成:

   Session.Query<BlogPost>()
          .Where(bp => !existingBlogPostVotes.Contains(bp.Id));
Run Code Online (Sandbox Code Playgroud)