nhibernate - QueryOver IN 子句?

标签 nhibernate queryover

我想模拟这个查询:

SELECT * FROM FOO WHERE ID IN (1,2,3)

我怎样才能在 FNH 中做到这一点?
var ids = new List<int>{1,2,3};
var results = session.QueryOver<Foo>().Where( x=> ids.Contains(x.id) );

但这不起作用,只是给了我一个“无法识别的方法调用”异常。

有任何想法吗?这一定是一个普遍的要求。

最佳答案

啊哈——明白了! AddRestrictions 有一个 IsIn 方法:

var results = session.QueryOver<Foo>().AndRestrictionOn(x=>x.id).IsIn(ids)

有了这最后一块,我们可能已经准备好抛弃我们多年的手卷 ORM!

关于nhibernate - QueryOver IN 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155189/

相关文章:

c# - 我应该如何在事务中包装我的选择语句?

NHibernate 投影 (QueryOver.SelectList) 限制

nhibernate - 从父集合中查询子集合

postgresql - 基于 NHibernate 公式的属性 + PostgreSQL 区间

c# - 休眠 : One to One mapping

c# - 通过代码在由多列组成的主键上定义 NHibernate 映射

NHibernate QueryOver Have 子句

nhibernate - QueryOver IList<string> 属性

NHibernate 没有使用鉴别器值来按子类型进行过滤,为什么?

c# - NHibernate QueryOver 别名问题