Сохраняющиеся потоки больших двоичных объектов с помощью NHibernate

StackOverflow https://stackoverflow.com/questions/498712

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top