SQL 2008文件流与NHibernate
-
22-08-2019 - |
题
我试图使用文件流SQL Server 2008中存储用户上载的图像。
我的问题是,NHibernate的不会出错,但它也不会将数据保存到数据库中。没有记录被创建。
下面的图像类是一个自定义类(不要与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(最大)字段。
解决方案
这个问题的答案很简单。我删除了我重写为保存方法,它本身固定。我们的基类已有定义的保存方法和我重写是完全错误的。
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
}
不隶属于 StackOverflow