2012-05-31 3 views
0

Что мне нужно сделать, так это сделать запрос в nHibernate (полностью динамически я не знаю, сколько объектов у меня будет).nHibernate abstractCriterion и динамический запрос

Этот запрос должен возвращать объекты определенных идентификаторов (я получил 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

Смежные вопросы