以前曾以为NHibernate 有bug 导致数据库不能存储String类型长度大于4000以上的字符串.后面看也没有新版本出,自己仔细查看了一下源代码,才知道是自己错了.
![](/images/load.gif)
在Nhibernate 中,有2种String类型 一种是 StringType 限制长度为4000 对应数据库类型是varchar,另外一种 是StringClobType 对应数据库类型是Text. 以前都是用StringType 这种类型,当然就出现问题了.对应在hbm.xml里面的描述是 <property name="Content" type="StringClob" /> 这样就可以了,
顺便说一下NHibernate中的几种常见的数据类型,希望能够给大家一个参考. 详细的类型大家可以NHibernate源代码Type文件夹看一下各种类型名称就应该知道了. 和SQL数据类型都有一个相对应的.
ByteType BooleanType CharType DateTimeType DoubleType Int16Type Int32Type In64Type SByteType StringType 这些实际是和DOTNET的数据类型一样.
但有一些存放大数据的, 以Clob结尾的表示可以在数据库中存放巨型数据 例如StringClob BinaryBlobType等
另外有两种非常重要的 OneToOneType 和ManyToOneType 这两种是做一对一和多对一 的数据表关系映射必须的.
其他很多没有用过,不是很明白 有一个ListType难道是将DotNet的IList列表直接存储到数据库中?? 不明白,希望用过的人告知一下.
![](/images/load.gif)
---------------------------------------------------
![](/images/load.gif)
专业域名主机邮局服务商。
空间支持脚本丰富,同时支持mysql和sqlserver数据库
从20M-3G不同档次的主机给大家选择
csdn和donews上的客户可享受特别优惠