Файловый поток Sql 2008 с NHibernate
-
22-08-2019 - |
Вопрос
Я пытаюсь использовать Filestream на сервере sql 2008 для хранения загруженных пользователем изображений.
Моя проблема в том, что NHibernate не выдает ошибок, но и не сохраняет данные в базу данных.Никакая запись не создается.
Приведенный ниже класс Image является пользовательским классом (не путать с System.Drawing.Image).
public class ImageMap : ClassMap<Image>
{
public ImageMap()
{
WithTable("Images");
Id(x => x.ImageId).GeneratedBy.GuidComb().WithUnsavedValue(Guid.Empty);
Map(x => x.ImageData);
Map(x => x.Extension);
References(x => x.Owner, "UserId");
}
}
Мой метод сохранения выглядит так:
public void Save(Image image)
{
ISession session = GetSession();
session.SaveOrUpdate(image);
}
Возможно, я неправильно сохраняю, возможно, у меня отключена карта.ImageData — это поле varbinary(max) в базе данных.
Решение
Ответ на это был прост.Я удалил переопределение метода сохранения, и оно исправилось.В нашем базовом классе уже был определен метод сохранения, и мое переопределение было совершенно неправильным.
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
}
Не связан с StackOverflow