我试图使用文件流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();
        }
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top