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

Вопрос NHibernate:

Скажем, у меня есть таблица SQL Person и столбец Picture (объект OLE). У меня есть класс Person с атрибутом: byte [] Picture.

Возможно ли такое составление карты?

<property name  = "Picture" column = "Picture"  type = "System.Byte[]"  lazy="true"  />

Влияет ли ключевое слово "lazy" на свойства или его можно использовать только при работе с коллекциями / сумками и т. Д.?


person Seb    schedule 26.01.2010    source источник
comment
Вот что об этом говорит Айенде ayende. ru / Blog / archive / 26.08.2007 /   -  person Chris Shouts    schedule 26.01.2010


Ответы (2)


Похоже, что эта функция только что попала в ствол NHibernate:

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

person Michael Maddox    schedule 27.01.2010

Я не нашел способа заставить это работать, но следующие два способа могут помочь вам решить проблему, которую вы подразумеваете:

  • Вы можете сопоставить два класса для одной и той же таблицы, один из которых включает массив байтов, а другой нет.

  • Вы можете включить сопоставление свойств «многие к одному» в ту же таблицу, где дочерний класс имеет включенный байтовый массив, и затем вы получите доступ к двоичному файлу, используя Person.PersonPicture.Picture, а не просто Person.Picture; промежуточный класс теперь можно лениво загружать.

Ни то, ни другое не идеально, но они работают. Краткий ответ - коллекции и свойства многие-к-одному могут загружаться лениво, а обычные свойства - нет.

person David M    schedule 26.01.2010