Sql 2008 Filestream with NHibernate

╄→尐↘猪︶ㄣ 提交于 2020-01-14 18:55:19

问题


I am attempting to use Filestream in sql server 2008 to store user uploaded images.

My problem is that NHibernate will not error, but it also will not save the data into the database. No record is created.

The Image class below is a custom class (not to be confused with 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");
    }
}

My method to save looks like this:

public void Save(Image image)
    {
        ISession session = GetSession();

        session.SaveOrUpdate(image);
    }

Maybe I'm saving wrong, maybe my mapping is off. ImageData is a varbinary(max) field in the database.


回答1:


The answer to this was simple. I deleted my override to the save method and it fixed itself. Our baseclass already had the save method defined and my override was just plain wrong.

public void Save(T entity)
    {
        using (ISession session = GetSession())
        using (ITransaction tx = session.BeginTransaction())
        {
            session.SaveOrUpdate(entity);
            tx.Commit();
        }
    }


来源:https://stackoverflow.com/questions/866824/sql-2008-filestream-with-nhibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!