5

我需要使用 NHibernate 3.2 中的按代码映射功能映射表的 ntext 列,这样它就不会被截断为 4000 个字符。

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

属性(emp => emp.Notes);

注意:请不要将它与流畅的 NHibernate 或 hbm 文件映射混合使用。

4

3 回答 3

4

所以,我解决了以下问题:

属性(emp => emp.Notes, map => map.Column(col => col.SqlType("ntext")));

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

正如jbl所指出的,解决方案来自这里

于 2013-02-01T11:52:17.167 回答
1

也许你可以试试这个,它也应该适用于 nvarchar(max) 列:

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

希望这会有所帮助

于 2013-02-01T08:47:51.790 回答
0

尝试:

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

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

于 2013-02-01T07:45:31.340 回答