如何通过NHibernate 3.2的代码特性使用NHibernate映射来映射ntext?

如何通过NHibernate 3.2的代码特性使用NHibernate映射来映射ntext?,nhibernate,nhibernate-mapping,truncate,mapping-by-code,ntext,Nhibernate,Nhibernate Mapping,Truncate,Mapping By Code,Ntext,我需要使用NHibernate3.2中的MappingByCode特性映射表的ntext列,这样它就不会被截断为4000个字符 在下面的示例中,我需要更改什么?“Notes”是sql表中具有ntext类型的属性: 属性(emp=>emp.Notes) 注意:请不要将其与fluent NHibernate或hbm文件映射混合使用。尝试: Property(emp => emp.Notes, mapinfo => mapinfo.Lenth(someHighValue)); 如果提供的

我需要使用NHibernate3.2中的MappingByCode特性映射表的ntext列,这样它就不会被截断为4000个字符

在下面的示例中,我需要更改什么?“Notes”是sql表中具有ntext类型的属性:

属性(emp=>emp.Notes)

注意:请不要将其与fluent NHibernate或hbm文件映射混合使用。

尝试:

Property(emp => emp.Notes, mapinfo => mapinfo.Lenth(someHighValue));

如果提供的长度大于varchar中可以容纳的长度,NHibernate将切换到不同的字符类型。

也许您可以尝试此方法,这也适用于nvarchar(max)列:

Property(emp => emp.Notes, m => m.Type(NHibernateUtil.StringClob));

希望这会有所帮助,因此,我解决了以下问题:

属性(emp=>emp.Notes,map=>map.Column(col=> col.SqlType(“ntext”)

实际上,我们需要做的就是:告诉NHibernate映射器sql中列的实际类型。:)


解决方案来自。

它将切换到
NVARCHAR(MAX)
NTEXT
已过时。看见改用nvarchar。它不起作用,因为它希望“Notes”的类型是nvarchar(MAX)而不是ntext。@Baig ok,thx。我希望这能有所帮助