NHibernate ленивые свойства поведения? - PullRequest
1 голос
/ 05 мая 2010

Я пытался внедрить NHibernate в проект, над которым я работаю на своем рабочем месте.

Поскольку мне необходимо сделать сильный упор на производительность, я провел стресс-тест для проверки концепции существующей таблицы проекта с тысячами записей, каждая из которых содержит большой текстовый столбец. Тем не менее, при выборе коллекции этих записей оператор SELECT выполняется относительно долго; по-видимому, из-за вышеупомянутой колонки.

Первое решение, которое приходит на ум, устанавливает это свойство как ленивое:

<property name="Content" lazy="true"/>

Но, похоже, нет разницы в SQL, сгенерированном NHibernate. У меня вопрос: как ленивые свойства ведут себя в NHibernate? Есть ли какие-то ограничения типа, которые я мог бы пропустить? Должен ли я пойти по-другому?

Использование подхода HQL new Class(column1, column2) работает, но ленивые свойства звучат как более простое решение.

Возможно, стоит упомянуть, что я использую NHibernate 2.1.2GA с Castle DynamicProxy.

Спасибо!

1 Ответ

5 голосов
/ 05 мая 2010

Чтобы создать ленивые свойства с помощью 2.1. *, Попробуйте следующее:

http://ayende.com/Blog/archive/2007/08/26/Lazy-Property-Loading-In-NHibernate.aspx

Ленивые свойства намного проще и полностью поддерживаются в транке (3.X):

http://ayende.com/Blog/archive/2010/01/27/nhibernate-new-feature-lazy-properties.aspx

См. Также:

Ленивая загрузка свойств в Nhibernate и Spring

NHibernate: свойства отложенной загрузки?

...