在 NHibernate 中使用字符串类型,默认会映射到字符类型,在 SQLServer 中,NVARCHAR 类型最大长度是 4000 字符,如果超过 4000,比如使用 SQL Server 中的 nvarchar(max),那么就需要特别配置。

比如说,我们在实体中定义了一个名为 Content 的字段。

public virtual string Content { set; get; }

默认情况下,对应的数据库字段定义会自动生成为

Content NVARCHAR(255) null

如果我们希望它的长度是 NVARCHAR(MAX) 怎么办呢?

很容易找到的说明是使用 StringClob 类型,这是 NHibernate 内部定义的一个类型,用来说明这个字段是一个长字符串类型,你的字段属性是字符串类型?没有问题,NHibernate 知道这一点的,你完全不用修改你的实体定义。

<property name="Content" type="StringClob" />

那么,你就会看到现在对应的数据库字段定义修改为了你的目标。

Content NVARCHAR(MAX) null

StringClob 太诡异了,你不想使用这个办法,其实也可以直接指定数据库中的字段类型,使用 column 就可以了,通过 sql-type 属性可以直接配置,如下所示。

    <property name="Content">
<!-- 对于 nvarchar(max> 类型,需要特殊说明 -->
<column name="Content" sql-type="nvarchar(max)"/>
</property>

你得到的结果和上面的方式是一样的。

太复杂了?有没有更加简单的方式?当然有!

你也可以通过字段的长度来达到目的,在 SQLServer 中,NVARCHAR 类型的最大字符长度是 4000,如果你指定一个大于 4000 的值,比如 4001,就可以达到目的了。如下所示:

<property name="Content"  length="4001" >

注意,我是使用的 NHibernate 版本是 3.3.1.4000,你要确认一下你的版本。

下载地址:http://sourceforge.net/projects/nhibernate/files/NHibernate/3.3.3GA/NHibernate-3.3.3.GA-bin.zip/download

最新文章

  1. Qt编译安装qwt错误moc/xxx Error:126
  2. 使用用Generic.xaml加载默认的主题资源
  3. 千呼万唤始出来!—— GG(高仿QQ)终于有移动端了!(技术原理、实现、源码)
  4. Android 设置EditText光标Curso颜色及粗细
  5. memcachedb-持久化存储的缓存系统
  6. Qt5官方demo解析集(36个)
  7. RasAPI函数实现PPPOE拨号
  8. 【模拟】Codeforces 711A Bus to Udayland
  9. [SQL学习笔记][用exists代替全称量词 ]
  10. promise/bluebird源码
  11. JavaScript高级程序设计---学习笔记(二)
  12. 测试一下js是否可用
  13. VR全景智慧城市-VR大时代
  14. JVM平台上的响应式流(Reactive Streams)规范
  15. jQuery -- 光阴似箭(一):初见 jQuery -- 基本用法,语法,选择器
  16. docker-1-环境安装及例子实践
  17. struts2:表单标签续(datetimepicker标签)
  18. Golang命令行拷贝文件
  19. Twitter REST API, Streaming API
  20. Luogu P2055 [ZJOI2009]假期的宿舍

热门文章

  1. [转]UOS 中的虚拟网络设备
  2. 异步I/O编程实例,异步socket
  3. 51nod 1150 Logarithm
  4. 【sql】之使用sql根据身份证查询过生日人数
  5. 报错:java.lang.IllegalStateException: Cannot call sendError() after the response has been committed(待解答)
  6. Oracle中in和exists的选择
  7. (WPF, MVVM) Event 处理
  8. spark单机模式简单搭建
  9. PLSQL_数据泵定参数批量导入多表Expdp/Impdp Parfile(案例)
  10. DBA_Oracle Audit基本概念(概念)