zoukankan      html  css  js  c++  java
  • 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意味着将关闭默认的外连接抓取

    可用值:建议在03之间取值。

    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(不启用该功能)。

  • 相关阅读:
    Vimium -为键盘而生
    Sublime Text 3 修改配色主题【侧边框之...】
    MyBatis-Plus文档地址
    解决:电脑新建文件后需要刷新才显示
    技术书籍博客
    js获取浏览器当前窗口的高度长度
    DataGridView隐藏列用CSS实现
    判断windows操作系统平台
    iis7.5错误 配置错误
    vmware安装mac
  • 原文地址:https://www.cnblogs.com/hornet/p/4060729.html
Copyright © 2011-2022 走看看