NHibernate: лениво загруженные свойства? - PullRequest
2 голосов
/ 26 января 2010

NHibernate вопрос:

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

Можно ли так картографировать?

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

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

Ответы [ 2 ]

3 голосов
/ 27 января 2010

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

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

3 голосов
/ 26 января 2010

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

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

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

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

...