NHibernate初入门之配置文件属性说明(四)
一、NHibernate配置所支持的属性
| 属性名 | 用途 |
|---|---|
| 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 TABLE和DROP 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初入门之配置文件属性说明(四)的更多相关文章
- Nhibernate初入门基本配置(二)
转载地址http://www.cnblogs.com/kissdodog/p/3306428.html 使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学 ...
- Nhibernate初入门基本配置(一)
文章出处:http://www.cnblogs.com/GoodHelper/archive/2011/02/14/nhiberante_01.html 一.NHibernate简介 什么是?NHib ...
- NHibernate初入门之映射文件配置说明(三)
转载逆心http://www.cnblogs.com/kissdodog/archive/2013/02/21/2919886.html 1. hibernate-mapping 这个元素包括以下可选 ...
- Kafka初入门简单配置与使用
一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成. ...
- Flume初入门简单配置与使用
1.Flume在集群中扮演的角色 Flume.Kafka用来实时进行数据收集,Spark.Storm用来实时处理数据,impala用来实时查询. 2.Flume框架简介 1.1 Flume提供一个分布 ...
- NHibernate从入门到精通系列
http://www.cnblogs.com/GoodHelper/archive/2011/02/17/1948744.html NHibernate从入门到精通系列(4)——持久对象的生命周期(上 ...
- Jqgrid入门-别具特色的Pager Bar (四)
Pager Bar位于表格最下边.默认情况下,分为三部分.如图: 第一部分:导航按钮栏(Navigator) 第二部分:页码栏(Pager) 第三部分:记录信息栏(Record) 要实 ...
- Spring Cloud 入门 之 Hystrix 篇(四)
原文地址:Spring Cloud 入门 之 Hystrix 篇(四) 博客地址:http://www.extlight.com 一.前言 在微服务应用中,服务存在一定的依赖关系,如果某个目标服务调用 ...
- SpringBoot 初入门
SpringBoot 初入门 关于介绍什么之类的就不讲了,主要做一下学习记录. 1. 启动方式 IDEA 启动 命令行启动: mvn spring-boot:run 部署到服务器启动: 先进行打包, ...
随机推荐
- [LeetCode]题解(python):010-Regular Expression Matching
题目来源: https://leetcode.com/problems/regular-expression-matching/ 题意分析: 这道题目定义了两个正则表达式规则.’.’代表任意字符,’* ...
- poj 1141 Brackets Sequence(区间DP)
题目:http://poj.org/problem?id=1141 转载:http://blog.csdn.net/lijiecsu/article/details/7589877 定义合法的括号序列 ...
- linux----命令替换
0.命令替换.它的大概意思是.命令在脚本中只起一个站位符的作用:在命令运行时它会被命令自己的执行结果所替换. 1.使用格式: 1.$(command) 2.`command` 2.使用举例: 1.:打 ...
- 关于Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟的问题
今天看到一转帖如下: Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟 https://access.redhat.com/knowledge/solutions/ ...
- Cortex-M3学习日志(六) -- ADC实验
上一次简单的总结了一下DAC方面的知识,好吧,这次再来总结一下ADC方面的东东.ADC即Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器.现实世界是由模 ...
- 二道shell面试题
1.按照给出的运行结果,编写一个名为xunhuan 的shell过程(用循环语句). 0 10 210 3210 43210 543210 6543210 76543210 876543210 2.编 ...
- XCode破解真机调试
XCode破解真机调试 3.0 一.这样做以后能怎样 以device模式编译出app 可以再越狱后的设备上运行 二.要会点什么 命令行,也就是terminal.终端.控制台... vim 三.开始吧 ...
- 浅谈Web Api配合SignalR的跨域支持
最近接手的一个项目中,涉及到一个简单的消息模块,由于之前有简单了解过SignalR,所以打算尝试着摸索摸索~! 首先,通过Nuget管理器添加Microsoft ASP.NET SignalR引用~目 ...
- c++基础 之 面向对象特征一 : 继承
class Base { public: void f() { cout<<"void f()"<<endl<<endl; } void f(i ...
- javascript DOM,它到底是什么-------Day32
这一晚上看的我是头疼不已啊,为什么呢? 终究是半路出家,我对javascript的理解仅仅停留在:调用javascript,改变页面样式,元素和实现一些事件的响应,尽管须要的时候可能会用,可是到底使用 ...