0
我试图使用filestream列类型和nHibernate将文件存储在SQL服务器数据库中。nHibernate长时间保存二进制数据
它似乎工作,但它非常缓慢,我试图改变这只是一个常规varbinary(最大)列,它没有任何效果。
使用本地数据库在本地站点上进行测试...保存〜100k文件大约需要5-10秒,保存〜5mb文件需要20-30分钟。
看看SQL分析器,它似乎是采取nHibernate长推出插入语句,而不是数据库的问题。
当试图提交时,它在iis上激活了大约80mb的内存,但处理器根本没有被击中,它只是坐在那里。
有没有人经历过这个或有任何见解之前,我调试到nHibernate源?
这里是我的配置...
public class ProgramDocument : IDocumentFile
{
public virtual int ProgramDocumentId { get; set; }
public virtual Program Program { get; set; }
public virtual byte[] DocumentData { get; set; }
public virtual ProgramDocumentationType DocumentType { get; set; }
public virtual string MimeType { get; set; }
public virtual string FileExtension { get; set; }
public virtual ProgramPresenter ProgramPresenter { get; set; }
public virtual DateTime CreateDate { get; set; }
}
public class ProgramDocumentOverride : IAutoMappingOverride<ProgramDocument>
{
public void Override(AutoMapping<ProgramDocument> mapping)
{
mapping.Map(_ => _.DocumentData).Length(int.MaxValue).LazyLoad();
}
}
感谢, 布莱恩·W·
您正在使用哪种NHibernate版本? – cremor