16

我想模拟这个查询:

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) );

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

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

4

1 回答 1

39

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

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

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

于 2012-08-28T08:15:51.643 回答