Как сгенерировать запрос NHibernate для загрузки сущностей ГДЕ Code = 'someCode' ИЛИ ​​Code LIKE 'someCode /%', someCode повторяется через IList <string>? - PullRequest
0 голосов
/ 18 октября 2011

У меня есть IList<string> именованные коды, хранящие значения кодов, для которых я хочу выполнить запрос для извлечения сущностей из базы данных.

Мне нужно извлечь все сущности, для которых код соответствует SQL WHEREусловия:

Code = 'someCode' OR Code LIKE 'someCode/%'

, где 'someCode' - это последовательно каждый код в кодах IList<string>.

Пример условия:

Code = 'someCode0' OR Code LIKE 'someCode0/%'
OR Code = 'someCode1' OR Code LIKE 'someCode1/%'
OR Code = 'someCode2' OR Code LIKE 'someCode2/%'
.
.
.
OR Code = 'someCodeN' OR Code LIKE 'someCodeN/%'

Где N - это коды. Количество- 1.

Я попытался использовать CreateSQLQuery и сгенерировал указанную выше строку, но я получил исключение, которое возникло из-за ошибки, исправленной в более поздней версии (с использованием NHibernate 1.2.1.4000).

Спасибо за ответы!

1 Ответ

2 голосов
/ 18 октября 2011

Используя HQL, вы можете использовать что-то вроде этого:

IQuery q = s.CreateQuery("from Person as p where p.Code in (:code)");
q.SetParameterList("code", someCodes); 

Где someCodes - ваш IList<String>;

Вот несколько других хороших примеров HQL для руководствавы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...