(N) Автоматическое присоединение к спящему режиму

Я разрабатываю веб-приложение с использованием NHibernate. Можете ли вы сказать мне, как написать запрос NHibernate для следующего SQL-запроса:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

По сути, это автоматическое соединение, но я не знаю, как это написать в Nhibernate. Допустим, имена свойств совпадают с именами столбцов таблицы.


person ollifant    schedule 23.08.2008    source источник


Ответы (1)


Вы можете просто выполнить выбор исходного объекта и установить связь между двумя объектами «ленивый = ложный». Пока объекты сопоставлены, оба будут возвращены, и вы не получите исключение отложенной загрузки при попытке доступа к объекту.

Если вы не хотите отображать «ленивый = ложный», вы также можете перебрать результаты и выполнить какую-либо операцию (например, спросить, является ли оно нулевым; если (v1.AssocatedObject == null) {}), чтобы убедиться данные загружаются, пока сессия открыта.

Обновлять:

Я думаю, что на самом деле есть лучший вариант, чем NHibernateUtil.Initialise(), который может инициализировать коллекцию, не блуждая по ней.

person Quibblesome    schedule 25.08.2008