SQL Server 2008 Filestream com NHibernate
-
22-08-2019 - |
Pergunta
Eu estou tentando usar Filestream no sql server 2008 para imagens enviadas armazenamento do usuário.
Meu problema é que NHibernate não vai erro, mas também não vai salvar os dados no banco de dados. Nenhum registro é criado.
A classe imagem abaixo é uma classe personalizada (para não ser confundido com 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");
}
}
Meu método para salvar parecido com este:
public void Save(Image image)
{
ISession session = GetSession();
session.SaveOrUpdate(image);
}
Talvez eu estou economizando errado, talvez o meu mapeamento está desligado. ImageData é um campo varbinary (max) no banco de dados.
Solução
A resposta a esta era simples. Eu apaguei a minha substituição para o método save e fixa-se. Nossos baseclass já tinha o método save definido e minha substituição foi apenas errado liso.
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow