Мой сценарий таков: у меня есть базовый запрос NHibernate для запуска формы (я кодировал его с помощью DetachedCriteria, но опишу его здесь с использованием синтаксиса SQL):
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
Пользовательский интерфейс для отображения результатов этого объединения позволяет пользователю указать дополнительные критерии: Скажите:
I.SomeField = 'UserValue'.
Теперь мне нужна последняя команда загрузки:
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
WHERE I.SomeField = 'UserValue'
Моя проблема: я создал DetachedCriteria со «статическим» аспектом запроса (верхнее соединение), а пользовательский интерфейс создает DetachedCriteria с «динамическим» компонентом запроса. Мне нужно объединить эти два в окончательный запрос, который я могу выполнить в сеансе NHibernate.
DefaultCriteria.Add () принимает ICriterion (который создается с использованием класса Expression и, возможно, других неизвестных мне классов, которые могли бы решить мою проблему).
Кто-нибудь знает, как я могу делать то, что хочу?