一、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之配置文件属性说明的更多相关文章

  1. [NHibernate]基本配置与测试

    目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确 ...

  2. 【HOW】用PowerShell脚本修改用户配置文件属性显示次序

    首先将如下脚本保存为PowerShell文件,如:ReorderUserProfileProperty.ps1. 在执行此脚本时,如果不输入任何参数,将列出所有用户配置文件属性的名称和显示次序:如果只 ...

  3. 【HOW】如何允许编辑用户配置文件属性

    在自定义用户配置文件属性后会发现,通过属性本身的配置页面,只能允许用户修改自己的属性,而管理员无法修改其他用户的属性.若要允许管理员在用户信息页面修改用户配置文件属性,可通过如下操作实现: 1. 进入 ...

  4. NHibernate 基本配置 (第一篇)

    使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学习.今天就来详解一下NHibernate的配置. 一.NHibernate基本配置 NHibernate ...

  5. Spring 中 Xml配置文件属性的说明

    Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...

  6. 一步步学习NHibernate(2)——配置NHibernate的环境

    请注明转载地址:http://www.cnblogs.com/arhat 第二章 环境搭建 在上一章中,我们知道了NHibernate是用来干什么的了,那么今天在本章中,我们开始搭建NHibernat ...

  7. Xml配置文件属性的说明

    Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...

  8. webpack详细介绍以及配置文件属性!

    1.webpack简单介绍 (1)webpack是一个用于实现前端模块化开发工具,可帮助我们自动打包编译成浏览器能够识别的代码 :同时支持commonjs规范 以及es6的import规范: 同时具备 ...

  9. Spring Boot 2.3 新特配置文件属性跟踪

    背景 当我们使用 spring boot 在多环境打包,配置属性在不同环境的值不同,如下: spring: profiles: active: @project.profile@ #根据maven 动 ...

随机推荐

  1. Ant Design Pro快速入门

    在上一篇文章中,我们介绍了如何构建一个Ant Design Pro的环境. 同时讲解了如何启动服务并查看前端页面功能. 在本文中,我们将简单讲解如何在Ant Design Pro框架下实现自己的业务功 ...

  2. react+echarts/g2/bizcharts可视化图表

    一.echarts的折线图的使用demo如下,linecharts为实例化的封装组件,line为实际应用的组件 cnpm install echarts import React from 'reac ...

  3. 13 jsp include

    假如您有一系列的页面, 每一个都拥有同样的导航栏, 联系信息和注脚, 好的解决方案是使用 jsp:include, 它可以将下面列出的任何内容插入到jsp的输出中: html 页面内容 纯文本文档的内 ...

  4. 封装常用的selenium方法

    package com.yk.userlive.base; import java.net.MalformedURLException;import java.net.URL;import java. ...

  5. datagrid带查询带分页

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  6. Linux初学者学习资料

    鸟哥的Linux私房菜 http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php

  7. Django admin 注册多个app

    class game(models.Model): content = models.TextField() def __str__(self): return 'To game %s' % self ...

  8. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档

    问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...

  9. libevent(了解)

    1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...

  10. sublime text3 插件CTags

    1.打开Sublime Text 2/3软件,在Preferences(设置)菜单中打开Package Control(插件管理器)打开菜单后找到install packages,搜索ctags, 回 ...