2012-05-31 119 views
0

我需要做的是在nHibernate中进行查询(完全动态我不知道有多少个对象)。nHibernate abstractCriterion并进行动态查询

此查询应该返回的是特定Id的对象(我得到List<int>)。

有没有什么办法,使限制像

Restrictions.Eq("Id",first item from my list of ints).Or("Id",second item) .... and so on. 

我知道我可以AbstractCriterion来,但不知道如何检查,如果从我的List<int>对象是第一位的。

那么我该如何做到这一点?

感谢提前:)

回答

3

您需要In标准:

session.CreateCriteria(typeof(XYZ)) 
.Add(Expression.In("Id", values)) 
+0

值是整数的情况下,我的列表中的某些对象的列表? – harry180

+0

Thi。虽然请记住,NHibernate将发送每个值作为参数。所以如果你有一个大的数组,你将运行在参数大小限制之下。 – Vadim

+0

nHibernate @Vadim有什么大小限制? – harry180