zoukankan      html  css  js  c++  java
  • NHibernate配置

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

    下面是一个在web.config文件中指定连接属性的例子:

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <configuration>
     3     <configSections>
     4         <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
     5                     Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     6         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
     7     </configSections>
     8     
     9     <nhibernate>
    10         <add 
    11             key="hibernate.connection.provider"          
    12             value="NHibernate.Connection.DriverConnectionProvider" 
    13         />
    14         <add 
    15             key="hibernate.connection.driver_class"          
    16             value="NHibernate.Driver.SqlClientDriver" 
    17         />
    18         <add 
    19             key="hibernate.connection.connection_string" 
    20             value="Server=127.0.0.1;Initial Catalog=thedatabase;Integrated Security=SSPI" 
    21         />
    22         <add 
    23             key="hibernate.connection.isolation"
    24             value="ReadCommitted"
    25         />
    26         <add 
    27             key="hibernate.dialect"                      
    28             value="NHibernate.Dialect.MsSql2000Dialect" 
    29         />
    30         
    31     </nhibernate>
    32     
    33     <!-- log4net (required by NHibernate) and other app specific config follows -->
    34 </configuration>
    35     
    属性名用途
    hibernate.connection.provider_class 定制IConnectionProvider的类型.

    例如:full.classname.of.ConnectionProvider (如果提供者创建在NHibernate中), 或者 full.classname.of.ConnectionProvider, assembly (如果使用一个自定义的IConnectionProvider接口的实现,它不属于NHibernate)。

    hibernate.connection.driver_class 定制IDriver的类型.

    full.classname.of.Driver (如果驱动类创建在NHibernate中), 或者 full.classname.of.Driver, assembly (如果使用一个自定义IDriver接口的实现,它不属于NHibernate)。

    hibernate.connection.connection_string 用来获得连接的连接字符串.
    hibernate.connection.isolation 设置事务隔离级别. 请检查 System.Data.IsolationLevel 来得到取值的具体意义并且查看数据库文档以确保级别是被支持的。

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

    可选配置属性

    下面是一些在运行时可以改变NHibernate行为的其他配置。所有这些都是可选的,也有合理的默认值。

    表2.2 NHibernate 配置属性

    属性名用途
    hibernate.dialect NHibernate方言(Dialect)的类名 - 可以让NHibernate使用某些特定的数据库平台的特性

    例如: full.classname.of.Dialect(如果方言创建在NHibernate中), 或者full.classname.of.Dialect, assembly (如果使用一个自定义的方言的实现,它不属于NHibernate)。

    hibernate.default_schema 在生成的SQL中,scheml/tablespace的全限定名.

    例如: SCHEMA_NAME

    hibernate.prepare_sql

    是否准备sql语句

    例如: true | false

    hibernate.session_factory_name SessionFactory被创建后将自动绑定这个名称.

    例如: some.name

    hibernate.use_outer_join 允许使用外连接抓取。

    例如:true | false

    hibernate.cache.provider_class 指定一个自定义的CacheProvider缓存提供者的类名

    例如: full.classname.of.CacheProvider(如果ICacheProvider创建在NHibernate中), 或full.classname.of.CacheProvider, assembly(如果使用一个自定义的ICacheProvider,它不属于NHibernate)。

    hibernate.query.substitutions 把NHibernate查询中的一些短语替换为SQL短语(比如说短语可能是函数或者字符)。

    例如: hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC

    SQL 方言 (SQL Dialects)

    RDBMS方言
    DB2 NHibernate.Dialect.DB2Dialect
    PostgreSQL NHibernate.Dialect.PostgreSQLDialect
    MySQL NHibernate.Dialect.MySQLDialect
    Oracle (any version) NHibernate.Dialect.OracleDialect
    Oracle 9/10g NHibernate.Dialect.Oracle9Dialect
    Sybase NHibernate.Dialect.SybaseDialect
    Microsoft SQL Server 2000 NHibernate.Dialect.MsSql2000Dialect
    Microsoft SQL Server 7 NHibernate.Dialect.MsSql7Dialect
    Firebird NHibernate.Dialect.FirebirdDialect

    通过Apache log4net,NHibernate记录很多事件。

    你可以从 http://logging.apache.org/log4net/下载 log4net. 要使用log4net,你要在app.config或者web.config中配置log4net节点.在src/NHibernate.Test工程中有一个配置的例子.

  • 相关阅读:
    4408: [Fjoi 2016]神秘数
    UOJ #35. 后缀排序[后缀数组详细整理]
    POJ 2887 Big String
    搜索过滤grep(win下为findstr)
    解决putty自动断开的问题
    > >> 将错误输出到文件
    环境变量
    端口被占用,查看并杀死占用端口的进程
    查找文件路径find
    【vim使用】
  • 原文地址:https://www.cnblogs.com/luyujie/p/3242576.html
Copyright © 2011-2022 走看看