QueryOver IN子句?

时间:2012-08-28 08:10:37

标签: 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) );

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

有什么想法吗?这必须是一个共同的要求。

1 个答案:

答案 0 :(得分:36)

啊哈哈! AddRestrictions有一个IsIn方法:

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

有了这篇最后一篇文章,我们可能已经准备好抛弃我们已有数年历史的手工ORM!