RSS

导航







快速搜索

高级搜索 »

注意:此页面是NHibernate 1.0.1 中文文档的一部分。

基本的值类型大致可以粗糙的分为三组:System.ValueType类型,System.Object类型和支持大对象的System.Object类型.和.NET类型一样,System.ValueType对应的列不能存储null值,而System.Object可以.

表4.3 System.ValueType 映射类型
NHibernate 类型.NET 类型Database 类型备注
BooleanSystem.BooleanDbType.Boolean在没有指定类型(type) 属性时的默认值
ByteSystem.ByteDbType.Byte在没有指定类型(type) 属性时的默认值
CharSystem.CharDbType.StringFixedLength - 1 char 在没有指定类型(type) 属性时的默认值
DateTimeSystem.DateTimeDbType.DateTime -忽略毫秒在没有指定类型(type) 属性时的默认值
DecimalSystem.DecimalDbType.Decimal在没有指定类型(type) 属性时的默认值
DoubleSystem.DoubleDbType.Double在没有指定类型(type) 属性时的默认值
GuidSystem.GuidDbType.Guid在没有指定类型(type) 属性时的默认值
Int16System.Int16DbType.Int16在没有指定类型(type) 属性时的默认值
Int32System.Int32DbType.Int32在没有指定类型(type) 属性时的默认值
Int64System.Int64DbType.Int64在没有指定类型(type) 属性时的默认值
PersistentEnum一个 System.Enum潜在类型对应的DbType不用在映射文件指定type="PersistentEnum".而是提供枚举的程序集全名,让NHibernate用反射来猜测类型。枚举使用的潜在类型决定适当的DbType。
SingleSystem.SingleDbType.Single在没有指定类型(type) 属性时的默认值
TicksSystem.DateTimeDbType.Int64type="Ticks"必须被指定
TimeSpanSystem.TimeSpanDbType.Int64在没有指定类型(type) 属性时的默认值
TimestampSystem.DateTimeDbType.DateTime - 取决于数据库支持type="Timestamp"必须被指定
TrueFalseSystem.BooleanDbType.AnsiStringFixedLength - 一个字符,'T' 或者'F'type="TrueFalse" 必须被指定
YesNoSystem.BooleanDbType.AnsiStringFixedLength - 一个字符,'Y' 或者'N'type="YesNo"必须被指定

表4.4 System.Object 映射类型
NHibernate 类型.NET 类型Database 类型备注
AnsiStringSystem.StringDbType.AnsiStringtype="AnsiString"必须被指定
CultureInfoSystem.Globalization.CultureInfoDbType.String - 表明文化(culture)的5个字符 在没有指定类型(type) 属性时的默认值
BinarySystem.Byte[]DbType.Binary在没有指定类型(type) 属性时的默认值
TypeSystem.TypeDbType.String 容纳程序集全名在没有指定类型(type) 属性时的默认值
StringSystem.StringDbType.String在没有指定类型(type) 属性时的默认值

表4.5 Large Object 映射类型
NHibernate 类型.NET 类型Database 类型备注
StringClobSystem.StringDbType.Stringtype="StringClob" 必须被指定.整个字段被读入内存
BinaryBlobSystem.Byte[]DbType.Binarytype="BinaryBlob" 必须被指定. 整个字段被读入内存
Serializable任何被标记了可序列化属性(SerializableAttribute)的System.Object.DbType.Binary type="Serializable" 应该被指定. 如果不能为属性找到NHibernate类型,这是最后可依靠的类型。

要掌握NHibernate或者使用某种工具生成NHibernate的hbm.xml文件,应该了解这是一个NHibernate类型名的完整的层。type="integer"被映射为Int32NHibernateType,type="short"被映射为Int16NHibernateType.查看所有的转换你可以查看NHibernate.Type.TypeFactory类的静态构造函数.

顶部
.NET 藏经阁 | | 版权所有 ©2008 entlib.net.cn