因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数。幸运的是,大部分都已经有默认值了。 NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数。

下面是一个在web.config文件中指定连接属性的例子:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections> <nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=127.0.0.1;Initial Catalog=thedatabase;Integrated Security=SSPI"
/>
<add
key="hibernate.connection.isolation"
value="ReadCommitted"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/> </nhibernate> <!-- log4net (required by NHibernate) and other app specific config follows -->
</configuration>
属性名 用途
hibernate.connection.provider_class 定制IConnectionProvider的类型.

例如:full.classname.of.ConnectionProvider (如果提供者创建在NHibernate中), 或者 full.classname.of.ConnectionProvider, assembly (如果使用一个自定义的IConnectionProvider接口的实现,它不属于NHibernate)。

hibernate.connection.driver_class 定制IDriver的类型.

full.classname.of.Driver (如果驱动类创建在NHibernate中), 或者 full.classname.of.Driver, assembly (如果使用一个自定义IDriver接口的实现,它不属于NHibernate)。

hibernate.connection.connection_string 用来获得连接的连接字符串.
hibernate.connection.isolation 设置事务隔离级别. 请检查 System.Data.IsolationLevel 来得到取值的具体意义并且查看数据库文档以确保级别是被支持的。

例如: Chaos, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Unspecified

可选配置属性

下面是一些在运行时可以改变NHibernate行为的其他配置。所有这些都是可选的,也有合理的默认值。

表2.2 NHibernate 配置属性

属性名 用途
hibernate.dialect NHibernate方言(Dialect)的类名 - 可以让NHibernate使用某些特定的数据库平台的特性

例如: full.classname.of.Dialect(如果方言创建在NHibernate中), 或者full.classname.of.Dialect, assembly (如果使用一个自定义的方言的实现,它不属于NHibernate)。

hibernate.default_schema 在生成的SQL中,scheml/tablespace的全限定名.

例如: SCHEMA_NAME

hibernate.prepare_sql

是否准备sql语句

例如: true | false

hibernate.session_factory_name SessionFactory被创建后将自动绑定这个名称.

例如: some.name

hibernate.use_outer_join 允许使用外连接抓取。

例如:true | false

hibernate.cache.provider_class 指定一个自定义的CacheProvider缓存提供者的类名

例如: full.classname.of.CacheProvider(如果ICacheProvider创建在NHibernate中), 或full.classname.of.CacheProvider, assembly(如果使用一个自定义的ICacheProvider,它不属于NHibernate)。

hibernate.query.substitutions 把NHibernate查询中的一些短语替换为SQL短语(比如说短语可能是函数或者字符)。

例如: hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC

SQL 方言 (SQL Dialects)

RDBMS 方言
DB2 NHibernate.Dialect.DB2Dialect
PostgreSQL NHibernate.Dialect.PostgreSQLDialect
MySQL NHibernate.Dialect.MySQLDialect
Oracle (any version) NHibernate.Dialect.OracleDialect
Oracle 9/10g NHibernate.Dialect.Oracle9Dialect
Sybase NHibernate.Dialect.SybaseDialect
Microsoft SQL Server 2000 NHibernate.Dialect.MsSql2000Dialect
Microsoft SQL Server 7 NHibernate.Dialect.MsSql7Dialect
Firebird NHibernate.Dialect.FirebirdDialect

通过Apache log4net,NHibernate记录很多事件。

你可以从 http://logging.apache.org/log4net/下载 log4net. 要使用log4net,你要在app.config或者web.config中配置log4net节点.在src/NHibernate.Test工程中有一个配置的例子.

NHibernate配置的更多相关文章

  1. NHibernate系列文章五:NHibernate配置

    摘要 NHibernate有多种配置方法,代码,xml文件,以及Fluent NHibernate.这里只介绍最常用的两种NHibernate配置方法:通过代码和通过配置文件. 1. 通过代码配置 通 ...

  2. 通俗易懂的Nhibernate教程(2) ---- 配置之Nhibernate配置

    在上一个教程中,我们讲了Nhibernate的基本使用!So,让我们回顾下Nhibernate使用基本的步骤吧 1.NHibernate配置  ----- 这一步我们告诉了Nhibernate:数据库 ...

  3. One to One 的数据库模型设计与NHibernate配置

    在数据库模型设计中,最基本的实体关系有三种:一对一.一对多.多对多.关于一对多和多对多使用的情况较多,之前也有过一些讨论,现在来说明一下在数据库中一对一的模型设计. 首先,关系数据库中使用外键来表示一 ...

  4. Nhibernate配置和访问数据问题

    今天开始用Nhibernate做为自己的ORM,但是做的过程中确实遇到了好多问题,现在将问题收集起来以防日后出现相同的问题, 总结下: 这就是我的整个项目,现在配置下hibernate.cfg.xml ...

  5. 一、NHibernate配置所支持的属性

    属性名 用途 dialect 设置NHibernate的Dialect类名 - 允许NHibernate针对特定的关系数据库生成优化的SQL 可用值: full.classname.of.Dialec ...

  6. C# 数据操作系列 - 11 NHibernate 配置和结构介绍

    0. 前言 今天是NHibernate的第二篇内容,通过上一篇的内容,我们初步了解了NHibernate的创建和使用.这一篇,我继续探索NHibernate背后的秘密.嗯,就是这样. 1. NHibe ...

  7. Visual Studio 2010+Oracle 10g +NHibernate配置

    南京酷都面试,考官问:你知道NHibernate吗?瞬间我就急了:只听说过Hibernate,NHibernate是什么?还有其他问题也是不知道,所以后果就悲剧了. 自己做一个小系统,总是想如果数据量 ...

  8. nhibernate 配置nvarchar(max)

     若你真的需要一个nvarchar(max)的sql存储空间时,记得增加 .CustomType("StringClob") Demo:Map(x => x.ContentM ...

  9. NHibernate 配置增加代码感知

    Adding the Schema Include the schema in your Project, Solution, or Visual Studios XML Schemas folder ...

随机推荐

  1. QNetworkAccessManager 实现的 ftp 上传

    使用 QNetworkAccessManager 实现的 ftp 上传代码.完整可用,做个备忘. #include "mainwindow.h" #include <QDeb ...

  2. webbench详解

    安装 mkdir -p /usr/local/man/man1 yum install ctags -y tar zxvf webbench-1.5.tar.gzcd webbench-1.5make ...

  3. 浅析C# new和override的区别

    C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆. new C# new关键字表示隐藏,是指加上new关键字的属性或函数将对本类和继承类隐藏基类 ...

  4. sublime编写markdown文件中Ctrl+B的作用

    今天,手残,用markdown编辑是按了Ctrl+B,结果发现直接在同一文件夹目录下编译生成了html文件,之前都是Alt+m,可以直接预览,可是后来由于系统更新还是什么,Alt+m只会在用户目录(而 ...

  5. sscanf()函数的使用及其实例

    资料引自: 传送门 sscanf函数原型: Int sscanf( const char * src, const char * format, ...); int scanf( const char ...

  6. ubuntu nginx 安装以及配置文件详解

    1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...

  7. audio patch(10.9.3) [2.6.1]

    ; Basic Block Input Regs: rax -  Killed Regs: <nothing>0000000000048353 3D8419D411             ...

  8. 添加IP安全策略 远离系统Ping漏洞的威胁

    懂得网络的人对于Ping这个最基本的网络命令一定很熟悉,它是一个非常好用的TCP/IP工具.它可以向你提供的地址发送一个小的数据包,然后侦听这台机器是否有“回答”.你可以使用机器的 Internet ...

  9. re正则表达式13_review of regex symbols

    Review of Regex Symbols This chapter covered a lot of notation, so here’s a quick review of what you ...

  10. Linux下htop的使用

    linux top命令VIRT,RES,SHR,DATA的含义 第1行-第4行:显示CPU当前的运行负载,有几核就有几行,我的是4核 Mem:显示内存的使用情况,3887M大概是3.8G,此时的Mem ...