Сохраняющиеся потоки Blob с NHibernate

Если у меня есть класс объявляется как:

public class MyPersistentClass
{
     public int ID  { get; set; } 
     public Stream MyData  {get;set; }
}

Как я могу использовать сопоставления NHibernate для сохранения свойства MyData в базе данных и из нее?

1 ответов


вы можете использовать поток, используя пользовательский тип и сопоставить его в соответствии с вашими потребностями хранения. Но есть некоторые проблемы с использованием объекта Stream, как я упоминаю в моем серия блогов о ленивой потоковой передаче BLOBs и CLOBs с NHibernate.

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

Я бы предложил вам взглянуть на блог серии а также исходный код NHibernate на.Lob project. Он включает в себя различные варианты отображения только для такой проблемы. Пока документально это не подтверждено, но будет еще больше.