基本映射关系如下:

NHibernate类型

.NET类型

Database类型

备注

AnsiChar

System.Char

DbType.AnsiStringFixedLength - 1 char

Boolean

System.Boolean

DbType.Boolean

在没有指定类型(type) 属性时的默认值。

Byte

System.Byte

DbType.Byte

在没有指定类型(type) 属性时的默认值。

Char

System.Char

DbType.StringFixedLength - 1 char

在没有指定类型(type) 属性时的默认值。

DateTime

System.DateTime

DbType.DateTime - ignores the milliseconds

在没有指定类型(type) 属性时的默认值。

Decimal

System.Decimal

DbType.Decimal

在没有指定类型(type) 属性时的默认值。

Double

System.Double

DbType.Double

在没有指定类型(type) 属性时的默认值。

Guid

System.Guid

DbType.Guid

在没有指定类型(type) 属性时的默认值。

Int16

System.Int16

DbType.Int16

在没有指定类型(type) 属性时的默认值。

Int32

System.Int32

DbType.Int32

在没有指定类型(type) 属性时的默认值。

Int64

System.Int64

DbType.Int64

在没有指定类型(type) 属性时的默认值。

PersistentEnum

System.Enum

潜在类型对应的DbType

不用在映射文件指定type="PersistentEnum".而是提供枚举的程序集全名, 让NHibernate用反射来猜测类型。枚举使用的潜在类型决定适当的DbType.。

Single

System.Single

DbType.Single

在没有指定类型(type) 属性时的默认值。

Ticks

System.DateTime

DbType.Int64

type="Ticks"必须被指定。

TimeSpan

System.TimeSpan

DbType.Int64

在没有指定类型(type) 属性时的默认值。

Timestamp

System.DateTime

DbType.DateTime - 取决于数据库支持

type="Timestamp"必须被指定。

TrueFalse

System.Boolean

DbType.AnsiStringFixedLength -一个字符,'Y' 或者'N'

type="TrueFalse"必须被指定。

YesNo

System.Boolean

DbType.AnsiStringFixedLength -一个字符,'Y' 或者'N'

type="YesNo"必须被指定。

2.应用类型映射

NHibernate Type

.NET Type

Database Type

Remarks

AnsiString

System.String

DbType.AnsiString

type="AnsiString"必须被指定。

CultureInfo

System.Globalization.CultureInfo

DbType.String -表明文化(culture)的5个字符

在没有指定类型(type) 属性时的默认值。

Binary

System.Byte[]

DbType.Binary

在没有指定类型(type) 属性时的默认值。

Type

System.Type

DbType.String保存应用程序集权限定名。

在没有指定类型(type) 属性时的默认值。

String

System.String

DbType.String

在没有指定类型(type) 属性时的默认值。

3.二进制类型映射

Hibernate Type

.NET Type

Database Type

Remarks

StringClob

System.String

DbType.String

type="StringClob"必须被指定。 整个字段在内存里可读。

BinaryBlob

System.Byte[]

DbType.Binary

type="BinaryBlob"必须被指定。 整个字段在内存里可读。

Serializable

Any System.Object 必须标注可序列化标签

DbType.Binary

type="Serializable" 应该被指定. 如果不能为属性找到NHibernate类型,这是最后可依靠的类型。

原文来自:http://www.cnblogs.com/GoodHelper/archive/2011/02/24/nhibernate06.html

NHibernate 映射关系的更多相关文章

  1. Nhibernate 映射关系,一对多 多对一与多对手在映射文件中的体现。

    今天做了第一个Nhibernate项目,摸着石头过河,学到了一些东西,在这里将自己总结体会到的一些映射关系写出来,与大家分享,由于是初学者,如果有不对的地方希望大家能够指出来. 首先要说明要建立的几张 ...

  2. MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many)

    MyGeneration的几个NHibernate模板功能已经很强,但还是存在些问题.例如:Guid主键支持不佳,代码不易修改,不支持中文注释等等.所以我决定自己来改写此模版.我把一部分通用的函数提取 ...

  3. 用MyGeneration模板生成NHibernate映射文件和关系

    用我的MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many) MyGeneration的几个NHibernate模 ...

  4. NHibernate 映射基础(第三篇) 简单映射、联合主键

    NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来 ...

  5. ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

    ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...

  6. Hibernate4.2.4入门(二)——一对多的映射关系

    一.前言 前面我们已经学过hibernate的基础,学会增删改查简单的操作,然而我们数据库中存在着1对多,多对1,多对多的关系,hibernate又是基于ORM基础上的开源框架,可以让我们不用去编写S ...

  7. EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子

    本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF的默认的继承映射关系:一张表存放基类和子类的所有列,自动生成的discr ...

  8. hibernate笔记--使用注解(annotation)方式配置单(双)向多对一的映射关系

    前面几篇都是介绍的用配置文件来实现实体类到数据库表的映射,这种方式是比较麻烦的,每一个pojo类都需要写一个相应的*.hbm.xml,无疑增加了很多代码量,不过也有优点就是利于维护,为了方便开发,Hi ...

  9. hibernate笔记--单(双)向的多对多映射关系

    在讲单向的多对多的映射关系的案例时,我们假设我们有两张表,一张角色表Role,一张权限表Function,我们知道一个角色或者说一个用户,可能有多个操作权限,而一种操作权限同时被多个用户所拥有,假如我 ...

随机推荐

  1. C#方法参数传递-同时使用ref和out关键字

    在方法参数传递中,可以同时使用ref和out关键字,但是要注意ref和out参数传递的不同. using System;class Program{static void Main(){    Pro ...

  2. java opencv使用相关

    Using OpenCV Java with Eclipse http://docs.opencv.org/2.4/doc/tutorials/introduction/java_eclipse/ja ...

  3. Python 让PIP源使用国内镜像,提升下载速度和安装成功率

    对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...

  4. sublime工具安装完成后使用Emmet加快前端页面的开发速度

    sublime的安装这里就不介绍了,很多人看到有些人在使用sublime时使用了一些快捷键非常快速的搭建一个简单的html,简单的结构就打起来了.不需要手动一个标签一个标签写. 其实是他们安装了Emm ...

  5. POI Excel文件的读取与写入

    1. 创建目录 if(!(new File(path).isDirectory())){ new File(path).mkdirs();} 2. 读取Excel文件,并进行写入操作 Workbook ...

  6. Nginx能做什么

    本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得.所以还请见谅,同时欢迎留言交流. Ngi ...

  7. CPU负载过高异常排查实践与总结

    昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...

  8. C++:struct和union 内存字节对齐问题

    转自:http://blog.csdn.net/wangyanguiyiyang/article/details/53312049 struct内存对齐问题 1:数据成员对齐规则:结构(struct) ...

  9. docker简单操作

    下载镜像docker pull httpd(镜像名) 查看镜像:docker images 做容器 docker run -ti -v(映射)/www:发布目录的路径 -p 80:80 --name ...

  10. 出现“基础链接已关闭,无法链接到远程服务器"错误的解决办法

    一些用户在安装一些软件或是系统做某些修改后,采集器就没无登录或是无法获取到网页.登录或是使用httppostget工具会出现 ”基础链接已关闭,无法链接到远程服务器“的提示.经分析,是系统Socket ...