NHibernate创建图像而不是VarBinary(最大值)
我使用fallowing NHibernate映射NH 3.2和MS SQL Server 2008集MSSQLServer2008方言:NHibernate创建图像而不是VarBinary(最大值),nhibernate,sql-server-2008,nhibernate-mapping,Nhibernate,Sql Server 2008,Nhibernate Mapping,我使用fallowing NHibernate映射NH 3.2和MS SQL Server 2008集MSSQLServer2008方言: 这里的问题是,对于列值,NHibernate将创建一个图像字段。但我需要VarBinarymax。映射有什么问题?从3.1版迁移到3.2版后,我也遇到了同样的问题。 我认为这是一个错误。 我已经研究了源代码版本3.1和3.2,并发现了一些差异,这些差异改变了MSSQL方言*类的初始化顺序。 我通过创建方言类的后代并重写方法RegisterLargeObj
这里的问题是,对于列值,NHibernate将创建一个图像字段。但我需要VarBinarymax。映射有什么问题?从3.1版迁移到3.2版后,我也遇到了同样的问题。 我认为这是一个错误。 我已经研究了源代码版本3.1和3.2,并发现了一些差异,这些差异改变了MSSQL方言*类的初始化顺序。 我通过创建方言类的后代并重写方法RegisterLargeObjectTypeMappings修复了它
public class MyMsSql2008Dialect : MsSql2008Dialect
{
protected override void RegisterLargeObjectTypeMappings()
{
base.RegisterLargeObjectTypeMappings();
base.RegisterColumnType(DbType.Binary, 2147483647, "VARBINARY(MAX)");
}
}
从3.1版迁移到3.2版后,我也遇到了同样的问题。 我认为这是一个错误。 我已经研究了源代码版本3.1和3.2,并发现了一些差异,这些差异改变了MSSQL方言*类的初始化顺序。 我通过创建方言类的后代并重写方法RegisterLargeObjectTypeMappings修复了它
public class MyMsSql2008Dialect : MsSql2008Dialect
{
protected override void RegisterLargeObjectTypeMappings()
{
base.RegisterLargeObjectTypeMappings();
base.RegisterColumnType(DbType.Binary, 2147483647, "VARBINARY(MAX)");
}
}
试试这个
<property name="Value">
<column name="Value" sql-type="varbinary(max)" />
</property>
试试这个
<property name="Value">
<column name="Value" sql-type="varbinary(max)" />
</property>
或的可能副本或可能副本