一 NHibernate配置所支援的屬性

2022-01-11 15:07:43 字數 4921 閱讀 8048

屬性名用途

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或者是應用程式配置檔案 配置節中設定。

可用值: 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

關係型資料庫

方言備註

db2nhibernate.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

屬性名用途

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配置檔案配置節裡面的連線字串名。

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配置所支援的屬性

屬性名用途 dialect 設定nhibernate的dialect類名 允許nhibernate針對特定的關聯式資料庫生成優化的sql 可用值 full.classname.of.dialect,assembly default schema 在生成的sql中,將給定的schema tablesp...

nhibernate連線池配置

nhibernate連線池配置 nhibernate.driver.sqlclientdriver server 127.0.0.1 initial catalog sun user id sun password 123456 min pool size 10 max pool size 50 c...

NHibernate配置及對映檔案

配置nhibernate有三種常見的配置方法。xml version 1.0 encoding utf 8 configuration configsections section name hibernate configuration type nhibernate.cfg.configurat...