属性名 用途
dialect 设置NHibernate的Dialect类名 - 允许NHibernate针对特定的关系数据库生成优化的SQL

可用值: full.classname.of.Dialect, assembly

default_schema 在生成的SQL中, 将给定的schema/tablespace附加于非全限定名的表名上.

可用值: SCHEMA_NAME

use_outer_join 允许外连接抓取,已弃用,请使用max_fetch_depth

可用值: true | false

max_fetch_depth 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为0意味着将关闭默认的外连接抓取

可用值:建议在0 到3之间取值。

use_reflection_optimizer 开启运行时代码动态生成来替代运行时反射机制(系统级属性). 使用这种方式的话程序在启动会耗费一定的性能,但是在程序运行期性能会有更好的提升. 注意即使关闭这个优化, Hibernate还是需要CGLIB. 你不能在hibernate.cfg.xml中设置此属性. 这个属性不能在hibernate.cfg.xml或者是应用程序配置文件<hibernate-configuration> 配置节中设置。

可用值: true | false

bytecode.provider 指定字节码provider用于优化NHibernate反射性能。 null代表完全关闭性能优化, lcg用于轻量级的代码动态生成,codedom基于CodeDOM代码动态生成。

可用值: null | lcg | codedom

cache.provider_class 设置缓存实现类(实现ICacheProvider接口的类)

可用值: classname.of.CacheProvider, assembly

cache.use_minimal_puts 以频繁的读操作为代价, 优化二级缓存来最小化写操作(对群集缓存有效)。

可用值: true | false

cache.use_query_cache 允许查询缓存, 个别查询仍然需要被设置为可缓存的.

可用值: true | false

cache.query_cache_factory 自定义实现IQueryCacheFactory接口的类名, 默认为内建的StandardQueryCacheFactory

可用值: classname.of.QueryCacheFactory, assembly

cache.region_prefix 二级缓存区域名的前缀。

可用值: prefix

query.substitutions 将NHibernate查询中的符号映射到SQL查询中的符号 (符号可能是函数名或常量名字).

可用值: hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC

show_sql 输出所有SQL语句到控制台.

可用值: true | false

hbm2ddl.auto ISessionFactory创建时,自动检查数据库结构,或者将数据库schema的DDL导出到数据库. 使用 create-drop时,在显式关闭ISessionFactory时,将drop掉数据库schema.

可用值: create | create-drop

use_proxy_validator 是否启用验证接口或者是类是否可以使用代理,默认开启。(检查实体类的属性或者是方法是否被设置为Virtual)

可用值: true | false

transaction.factory_class 自定义ITransactionFactory的实现,默认为NHibernate内建的AdoNetTransactionFactory

可用值: classname.of.TransactionFactory, assembly

 

二、dialect属性支持的方言选项值

关系型数据库 方言 备注
DB2 NHibernate.Dialect.DB2Dialect  
DB2 for iSeries (OS/400) NHibernate.Dialect.DB2400Dialect  
Ingres NHibernate.Dialect.IngresDialect  
PostgreSQL NHibernate.Dialect.PostgreSQLDialect  
PostgreSQL 8.1 NHibernate.Dialect.PostgreSQL81Dialect 方言在PostgreSQL8.1中现在支持FOR UPDATE NOWAIT了。
PostgreSQL 8.2 NHibernate.Dialect.PostgreSQL82Dialect 方言在PostgreSQL8.2中现在支持在 DROP TABLEDROP SEQUENCE中使用IF EXISTS关键字了。
MySQL 3 or 4 NHibernate.Dialect.MySQLDialect  
MySQL 5 NHibernate.Dialect.MySQL5Dialect  
Oracle (any version) NHibernate.Dialect.OracleDialect  
Oracle 9/10g NHibernate.Dialect.Oracle9Dialect  
Sybase Adaptive Server Enterprise NHibernate.Dialect.SybaseDialect  
Sybase Adaptive Server Anywhere NHibernate.Dialect.SybaseAnywhereDialect  
Microsoft SQL Server 2000 NHibernate.Dialect.MsSql2000Dialect  
Microsoft SQL Server 2005 NHibernate.Dialect.MsSql2005Dialect  
Microsoft SQL Server 2005 Everywhere Edition NHibernate.Dialect.MsSqlCeDialect  
Microsoft SQL Server 7 NHibernate.Dialect.MsSql7Dialect  
Firebird NHibernate.Dialect.FirebirdDialect driver_class设置为 NHibernate.Driver.FirebirdClientDriver启用Firebird provider for .NET 2.0。
SQLite NHibernate.Dialect.SQLiteDialect driver_class设置为NHibernate.Driver.SQLite20Driver启用System.Data.SQLite provider for .NET 2.0。
Ingres 3.0 NHibernate.Dialect.IngresDialect  

三、NHibernate提供的Ado.net属性

属性名 用途
connection.provider_class 实现IConnectionProvider接口的类型。

例如: (如果是NHibernate内部的IConnectionProvider实现类)full.classname.of.ConnectionProvider,(如果是自定义的NHibernate外部的IConnectionProvider实现类 )full.classname.of.ConnectionProvider, assembly

connection.driver_class 如果使用DriverConnectionProvider,实现IDriver接口的类型。

(如果是NHibernate内部的实现的IDriver类型)full.classname.of.Driver (如果是自定义的NHibernate外部的IDriver实现类 )full.classname.of.Driver, assembly

这个配置通常是不需要配置的,如果设置好了hibernate.dialect一般会自动选好对应的IDriver。 详细的dialect与IDriver的默认对应关系可以查看API文档。

connection.connection_string 数据库连接字符串
connection.connection_string_name 数据库连接字符串名称(定义在.Net配置文件<connectionStrings>配置节里面的连接字符串名。
connection.isolation ADO.NET事务隔离级别, 查看System.Data.IsolationLevel类来了解各个值的具体意义, 但请注意多数数据库都不支持所有的隔离级别.

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

connection.release_mode 指定ADO.NET何时释放数据库连接。

例如: auto (默认) | on_close | after_transaction

注意,这些设置仅对通过ISessionFactory.OpenSession得到的ISession起作用。对于通过ISessionFactory.GetCurrentSession得到的ISession, 所配置的ICurrentSessionContext实现控制这些ISession的连接释放模式。

command_timeout 指定NHibernate生成的IDbCommands对象的超时时间。 
adonet.batch_size 指定用ADO.Net的批量更新的数量,默认设置为0(不启用该功能)。

一、NHibernate配置所支持的属性的更多相关文章

  1. NHibernate配置

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

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

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

  3. 基于Spring的可扩展Schema进行开发自定义配置标签支持

    一.背景 最近和朋友一起想开发一个类似alibaba dubbo的功能的工具,其中就用到了基于Spring的可扩展Schema进行开发自定义配置标签支持,通过上网查资料自己写了一个demo.今天在这里 ...

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

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

  5. 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL

    这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...

  6. Intent的属性及Intent-filter配置——Data、Type属性与intent-filter配置

    Data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象,一个Uri对象通常通过如下形式的字符串来表示: content://com.android.contacts/co ...

  7. SQL反模式学习笔记6 支持可变属性【实体-属性-值】

    目标:支持可变属性 反模式:使用泛型属性表.这种设计成为实体-属性-值(EAV),也可叫做开放架构.名-值对. 优点:通过增加一张额外的表,可以有以下好处 (1)表中的列很少: (2)新增属性时,不需 ...

  8. 配置iis支持.json格式的文件

    配置iis支持.json格式的文件发现要让IIS支持json文件并不是单纯的添加mime这么简单啊,以下是设置方法:一.IIS 6 1. MIME设置:在IIS的站点属性的HTTP头设置里,选MIME ...

  9. 无法加载ISAPI 筛选器 当前配置只支持加载为 AMD64 处理器体系结构创建的映像

    无法加载ISAPI 筛选器 当前配置只支持加载为 AMD64 处理器体系结构创建的映像 2011-11-9 0:18:49来源:本站原创作者:清晨320我要评论(0) 今天服务器的伪静态死活加载不上去 ...

随机推荐

  1. cocos2d-x 数据存储

    这一章中,我们从一个小小的金币数入手,讨论了数据持久化的话题.我们尽量使用引擎提供的数据存储方法,以最大可能地适应跨平台需求.这里介绍的存储方法本质上都是基于 XML 的,对于 1 MB 以下的存储规 ...

  2. Cocos2d-x stack corruption detected: aborted

    adb logcat错误 :堆栈错误,,或者访问过界...通常不太好调试:: 但是以下两种情况最最常见: 1. ]; strcpy(aa,"abcdefghijk123457890" ...

  3. hdoj1257 最少拦截系统

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  4. tortoisegit 7步 学会git分支

    tortoisegit 7步 学会git分支 做自己的产品,分支还是很重要的.例如,我发布了一个app,但是有bug,又想做新功能,怎么办呢?如果只在一个git上开发的话,bug会越来越多,原来bug ...

  5. LeetCode: Wildcard Matching 解题报告

    Wildcard MatchingImplement wildcard pattern matching with support for '?' and '*'. '?' Matches any s ...

  6. poj1564-Sum It Up(经典DFS)

    给出一个n,k,再给出的n个数中,输出所有的可能使几个数的和等于k Sample Input 4 6 4 3 2 2 1 15 3 2 1 1400 12 50 50 50 50 50 50 25 2 ...

  7. 利用IT++搭建通信仿真平台

    IT++ is a C++ library of mathematical, signal processing and communication classes and functions.也就是 ...

  8. 利用jdbc连接池(利用jdni)

    简介 前段时间用jdbc连接池,在这里记录下 1.利用jdni配置数据源 在Web项目的META-INF文件夹中新建context.xml文件,内容为: <?xml version=" ...

  9. Phalcon学习-model

    Model:表与表之间的关系:hasOne 一对一( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字 ...

  10. 关于最新的Vuforia-unity3d-samples2-8-13

    今天用了一下最新的Vuforia for unity3d的样例2-813版本号.导入我的unity3d之后.发现ARCamera的检视面板下非常多熟悉的元素都不见了,根本没法改动标志,如图所看到的. ...