最近在做一个AngularJs的管理平台,后台使用的是.Net Framework 4.5,搭配了NHibernate + Redis + Elasticsearch + Mysql等技术;

在新增接口的时候发现有些地方需要映射实体类等;

于是从官网找了对NHibernate配置映射文件时的类型进行归档,以供学习参考

值类型

NHibernate类型

.Net类型

数据库类型

备注

AnsiChar

System.Char

DbType.AnsiStringFixedLength - 1 char

必须指定type =“AnsiChar”。

Boolean

System.Boolean

DbType.Boolean

未指定类型属性时为默认值

Byte

System.Byte

DbType.Byte

未指定类型属性时为默认值

Char

System.Char

DbType.StringFixedLength - 1 char

未指定类型属性时为默认值

Currency

System.Decimal

DbType.Currency

必须指定type =“Currency”。

Date

System.DateTime

DbType.Date

必须指定type=“Date”

DateTime

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

未指定类型属性时的默认值。从NHibernate v5.0开始不再忽略小数秒。

DateTimeNoMs

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“DateTimeNoMs”。忽略小数秒。自NHibernate v5.0起可用。

DateTime2

System.DateTime

DbType.DateTime2

必须指定type =“DateTime2”。自NHibernate v5.0以来已过时,请改用DateTime。

DateTimeOffset

System.DateTimeOffset

DbType.DateTimeOffset

未指定类型属性时的默认值。

DbTimestamp

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“DbTimestamp”。当用作 版本字段时,使用数据库在专用查询中检索的当前时间,而不是客户端的当前时间。如果缺少数据库支持,它将回退到客户端的当前时间。

Decimal

System.Decimal

DbType.Decimal

未指定类型属性时的默认值。

Double

System.Double

DbType.Double

未指定类型属性时的默认值。

Guid

System.Guid

DbType.Guid

未指定类型属性时的默认值。

Int16

System.Int16

DbType.Int16

未指定类型属性时的默认值。

Int32

System.Int32

DbType.Int32

未指定类型属性时的默认值。

Int64

System.Int64

DbType.Int64

未指定类型属性时的默认值。

LocalDateTime

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“LocalDateTime”。确保 DateTimeKind设置为DateTimeKind.Local。如果设置了另一种日期,则抛出。从NHibernate v5.0开始不再忽略小数秒。

LocalDateTimeNoMs

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“LocalDateTimeNoMs”。与LocalDateTime类似, 但忽略小数秒。自NHibernate v5.0起可用。

PersistentEnum

A System.Enum

The DbType for the underlying value.

不要在映射中指定type =“PersistentEnum”。而是指定枚举的程序集限定名称或让NHibernate使用Reflection来“猜测”类型。Enum的UnderlyingType用于确定正确的DbType。

SByte

System.SByte

DbType.SByte

未指定类型属性时的默认值。

Single

System.Single

DbType.Single

未指定类型属性时的默认值。

Ticks

System.DateTime

DbType.Int64

必须指定type =“Ticks”。这是与UtcTicks一起“添加时间戳”列的推荐方法。

Time

System.DateTime

DbType.Time

必须指定type =“Time”。

TimeAsTimeSpan

System.TimeSpan

DbType.Time

必须指定type =“TimeAsTimeSpan”。

TimeSpan

System.TimeSpan

DbType.Int64

未指定类型属性时的默认值。

Timestamp

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

未指定类型属性时的默认值。

TrueFalse

System.Boolean

DbType.AnsiStringFixedLength - 1 char either ‘T’ or ‘F’

type=“TrueFalse” must be specified.

UInt16

System.UInt16

DbType.UInt16

未指定类型属性时的默认值。

UInt32

System.UInt32

DbType.UInt32

未指定类型属性时的默认值。

UInt64

System.UInt64

DbType.UInt64

未指定类型属性时的默认值。

UtcDateTime

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

确保DateTimeKind设置为DateTimeKind.Utc。如果设置了另一种日期,则抛出。从NHibernate v5.0开始不再忽略小数秒。

UtcDateTimeNoMs

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“UtcDateTimeNoMs”。与UtcDateTime类似, 但忽略小数秒。自NHibernate v5.0起可用。

UtcDbTimestamp

System.DateTime

DbType.DateTime / DbType.DateTime2(1)

必须指定type =“UtcDbTimestamp”。当用作 版本字段时,使用数据库在专用查询中检索的当前UTC时间,而不是客户端的当前时间。如果缺少数据库支持,它将回退到客户端的当前时间。

UtcTicks

System.DateTime

DbType.Int64

必须指定type =“UtcTicks”。这是与Ticks一起“加时间”列的建议方法。确保DateTimeKind设置为DateTimeKind.Utc。如果设置了另一种日期,则抛出。

YesNo

System.Boolean

DbType.AnsiStringFixedLength - 1 char either ‘Y’ or ‘N’

必须指定type =“YesNo”。

映射对象类型

NHibernate类型

.Net类型

数据库类型

备注

AnsiString

System.String

DbType.AnsiString

必须指定type =“AnsiString”。

CultureInfo

System.Globalization.CultureInfo

DbType.String - 5 chars for culture

未指定类型属性时的默认值。

Binary

System.Byte[]

DbType.Binary

未指定类型属性时的默认值。

Type

System.Type

DbType.String holding Assembly Qualified Name.

未指定类型属性时的默认值。

String

System.String

DbType.String

未指定类型属性时的默认值。

Uri

System.Uri

DbType.String

未指定类型属性时的默认值。

大数据类型

NHibernate类型

.Net类型

数据库类型

备注

StringClob

System.String

DbType.String

必须指定type =“StringClob”。整个字段被读入内存。

BinaryBlob

System.Byte[]

DbType.Binary

必须指定type =“BinaryBlob”。整个字段被读入内存。

Serializable

Any System.Object that is marked with SerializableAttribute.

DbType.Binary

应指定type =“Serializable”。如果没有为Property找到NHibernate Type,则这是后备类型。

XDoc

System.Xml.Linq.XDocument

DbType.Xml

未指定类型属性时的默认值。整个字段被读入内存。

XmlDoc

System.Xml.XmlDocument

DbType.Xml

未指定类型属性时的默认值。整个字段被读入内存。

参考官网文档:https://nhibernate.info/doc/nhibernate-reference/mapping.html#mapping-types

【笔记】记录NHibernate在.net中的使用的更多相关文章

  1. Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

    开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与 ...

  2. Activiti 学习笔记记录(二)

    上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Act ...

  3. JVM 学习笔记记录

    JVM 学习笔记记录 Sun JDK 监控和故障处理工具 名称 主要作用 jps JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程 jstat JVM S ...

  4. Activiti 学习笔记记录(2016-8-31)

    上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

  5. Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)

    原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...

  6. Android菜鸟的成长笔记(11)——Android中的事件处理

    原文:[置顶] Android菜鸟的成长笔记(11)——Android中的事件处理 Android提供了两种方式来处理事件,一个是基于回调的事件处理,另一个是基于监听的事件处理,举个例子: 基于回调的 ...

  7. Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)

    原文:Android菜鸟的成长笔记(15)-- Android中的状态保存探究(下) 在上一篇中我们简单了解关于Android中状态保存的过程和原理,这一篇中我们来看一下在系统配置改变的情况下保存数据 ...

  8. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. 算法笔记(c++)--c++中碰到的一些用法

    算法笔记(c++)--c++中碰到的一些用法 toupper(xxx)可以变成大写; tolower(xx)小写 isalpha(xxx)判断是不是字母 isalnum(xx)判断是不是数字 abs( ...

  10. 记录自己在 cmd 中执行 jar 文件遇到的一些错误

    记录自己在 cmd 中执行 jar 文件遇到的一些错误 场景: 请求接口,解析接口返回的 JSON 字符串并插入到我们的数据库里面. 情况: 项目在 eclipse 中正常运行,打成 jar 包后在 ...

随机推荐

  1. 康谋技术 |高效同步与处理:ADTF流服务在自动驾驶数采中的应用

    随着自动驾驶技术的发展,车辆的智能化程度不断提高,这体现了车辆感知,决策以及执行的能力.在算法开发和迭代过程中,提高测试和开发效率,关键在于多传感器数据的高质量采集,确保数据的同步性.完整性和一致性. ...

  2. tomcat-shell脚本

    自动部署项目脚本参考: #!/bin/bash#自动部署脚本source /etc/profileexport LANG=zh_CN.UTF-8#tomcat路径tomcatBinPath=/usr/ ...

  3. C# Delegate 委托及事件

    1.委托Delegate实质 由一个修饰符+  delegate,跟方法的定义比较类似,也需要声明参数和返回值.声明一个委托,就是声明一种方法签名(参数+返回值),只要是和声明委托方法签名相同的方法, ...

  4. Ubuntu修改密码及密码复杂度策略设置方法

    版本查看 cat /etc/issue cat /proc/version 内核查看 uname -a Ubuntu修改密码及密码复杂度策略设置方法 一.修改密码 1.修改普通用户密码 passwd ...

  5. 操作系统 -- linux初始化(上):GRUB与vmlinuz的结构

    本节树立启动的整体流程,重点解读Linux上GRUB是怎样启动,以及内核里的"实权人物"-- vmlinuz内核文件是如何产生和运转的. 全局流程 在机器加电后,BIOS会进行自检 ...

  6. MongoDB创建数据库文件的存放位置

    为什么要写这篇呢,故事还得从MongoDB如下所示的罢工说起 怎么就拒绝访问了呢???? 在执行mongod命令可发现如下问题: 于是,在蜘蛛网上到处扒拉,以解它这不解之症,也解我燃眉之急 终于... ...

  7. Number of Digit One——LeetCode⑩

    //原题链接https://leetcode.com/problems/number-of-digit-one/ 题目描述 Given an integer n, count the total nu ...

  8. Kafka怎么配置SASL用户名密码认证

    服务端配置(server.properties): # 开启SASL认证 security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN # 配置JAAS文 ...

  9. 【公众号搬运】gap

    .markdown-body { line-height: 1.8; font-weight: 400; font-size: 16px; word-spacing: 2px; letter-spac ...

  10. 介绍注解 @FeignClient 日志打印功能

      OpenFegin的日志打印功能是什么?Feign提供了日志打印功能,可以通过配置来调整日志级别,从而了解Feign执行Http请求的细节.通俗地说,就是对Feign接口的调用情况进行监控和输出. ...