在 NHibernate 中使用字符串类型,默认会映射到字符类型,在 SQLServer 中,NVARCHAR 类型最大长度是 4000 字符,如果超过 4000,比如使用 SQL Server 中的 nvarchar(max),那么就需要特别配置。
比如说,我们在实体中定义了一个名为 Content 的字段。
默认情况下,对应的数据库字段定义会自动生成为
如果我们希望它的长度是 NVARCHAR(MAX) 怎么办呢?
很容易找到的说明是使用 StringClob 类型,这是 NHibernate 内部定义的一个类型,用来说明这个字段是一个长字符串类型,你的字段属性是字符串类型?没有问题,NHibernate 知道这一点的,你完全不用修改你的实体定义。
那么,你就会看到现在对应的数据库字段定义修改为了你的目标。
StringClob 太诡异了,你不想使用这个办法,其实也可以直接指定数据库中的字段类