基本映射关系如下:

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# 拓展方法实例

    namespace BenJi{ class Program { static void Main(string[] args) { Console.WriteLine("你要调试程序吗?y ...

  2. git提交时候出错

    Please make sure you have the correct access rights and the repository exists. 解决方案: 主要原因是没有加载keygen ...

  3. JSF Web框架与Facelets表现层技术

    JSF(JavaServer Faces) JSF应用程序的生命周期从客户端对页面发出HTTP请求时开始,并在服务器响应页面时结束.JSF生命周期分为运行阶段和渲染阶段两个主要阶段. 执行阶段 当第一 ...

  4. tomcat性能调优 大赞

    从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü 吞吐量 ü Responsetime ü Cpuload ü MemoryUsage 我 们也在第三天的学习中对Apa ...

  5. Maven(一)如何用Eclipse创建一个Maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  6. 配置mysql主从数据库

    来源地址:https://www.cnblogs.com/alvin_xp/p/4162249.html Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡 ...

  7. Linux学习笔记之如何让普通用户获得ROOT权限

    在学习sodu的时候,我发现一些命令只能由root用户使用,普通用户使用会提示此用户没有使用sudo的权限.我想到的解方法是把正在使用的普通用户获得root权限,于是我通过百度和询问老师知道了如何去实 ...

  8. 静态编译C/C++程序

    静态编译C/C++程序,让程序运行不受平台限制 由于Linux操作系统的特有elf加载顺序. (可以参考此文). 虽然可以很大程度上解决Windows早期版本的dll hell问题, 但是给部署带来了 ...

  9. wireshark不支持抓localhost/127.0.0.1的包解决方法

    有些时候,测试网络应用时,为了开发方便,我们会在本机同时开启客户端和测试端,对于第三方的库来说,因为不能debug,可能需要通过抓包进行分析,今天用wireshark根据端口抓包的时候,发现怎么都下不 ...

  10. 20145317彭垚《网络对抗》Exp2 后门原理与实践

    20145317彭垚<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中: 例举你 ...