SQL 2008 Filestream con NHibernate
-
22-08-2019 - |
Domanda
Sto tentando di utilizzare Filestream in sql server 2008 immagini caricate archivio utenti.
Il mio problema è che NHibernate non errore, ma anche non salverà i dati nel database. Non viene creato alcun record.
La classe immagine qui sotto è una classe personalizzata (da non confondere con 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");
}
}
Il mio metodo per salvare assomiglia a questo:
public void Save(Image image)
{
ISession session = GetSession();
session.SaveOrUpdate(image);
}
Forse sto salvando sbagliato, forse la mia mappatura è spento. ImageData è un campo varbinary (max) nel database.
Soluzione
La risposta a questo è stato semplice. Ho eliminato il mio override il metodo Save ed esso stesso fissato. La nostra baseclass aveva già il metodo save definito e la mia esclusione era semplicemente sbagliato.
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow