相关疑难解决方法(0)

二进制Blob截断为8000字节 - SQL Server 2008/varbinary(max)

我已经使用Nhibernate 2.1从Fluent Nhibernate 1.0升级到使用NHibernate 3.0 GA预发布1.x并且达到了我认为的回归,但我想知道是否确实如此.

我使用的是SQL Server Express 2008和MSSQL 2008方言,并且具有System.Drawing.Image类型的Image属性,我已将其映射为:

Map (food => food.Image)
 .Length (int.MaxValue)
 .Nullable ();
Run Code Online (Sandbox Code Playgroud)

Image表中的列是类型varbinary(MAX).

生成的属性的hbm是:

<property name="Image" type="System.Drawing.Image, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
   <column name="Image" length="2147483647" not-null="false" />
</property>`
Run Code Online (Sandbox Code Playgroud)

但是无论我做什么,当使用当前的FNH和NH版本序列化时,二进制blob被截断为8000字节.以前的版本不是这种情况.

想法为什么会这样,以及如何解决/解决它?

nhibernate fluent-nhibernate sql-server-2008-express

23
推荐指数
3
解决办法
1万
查看次数

如何在sql server中创建一个varbinary(max)字段,以获得流畅的nhibernate

如何在源代码大小为varbinary(max)的sql server 2005表中创建一个varbinary字段,以获得流畅的nhibernate?目前我总是得到varbinary(8000)的默认值,这不够大,因为我将存储图像文件.

我尝试过使用CAstle.ActiveRecord但尚未取得任何成功.

 [ActiveRecord]
 public class MyFile : Entity
{
    public virtual string FileName { get; set; }
    public virtual string FileType { get; set; }
    public virtual int FileVersion { get; set; }
    public virtual int FileLength { get; set; }

    [Property(ColumnType = "BinaryBlob", SqlType = "VARBINARY(MAX)")]
    public virtual byte[] FileData { get; set; }   
}
Run Code Online (Sandbox Code Playgroud)

几个小时都未能找到解决方案,所以提前谢谢

捷克克朗

nhibernate nhibernate-mapping fluent-nhibernate varbinary

14
推荐指数
2
解决办法
1万
查看次数