zoukankan      html  css  js  c++  java
  • Castle学习系列之二:Castle配置

    说明:本系列文章参考自李会军先生的Castle 开发系列文章,然后记录自己在学习时遇到的一些问题,记录之。

    主要内容

    1、Castle配置学习

    2、初始化配置

    Castle配置学习

    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"/>
      </configSections>
      <activerecord>
        <config>
          <add key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
          <add key="dialect" value="NHibernate.Dialect.MsSql2008Dialect" />
          <add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
          <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" />
          <add key="connection.connection_string" value="Data Source=localhost;Initial Catalog=Study;User ID=sa;Password=******" />
        </config>
      </activerecord>
      <system.web>
        <compilation debug="true"/>
      </system.web>
    </configuration>

      此段配置适用于配置其NHibernate ADO.NET的。

      a、activerecord表明自定义节点,其类型(type)表明了ActiveRecord的实现程序集和命名空间。

      b、connection.driver_class,定制IDriver的类型,可以配置适用于不同类型数据库的驱动。

      c、connection.provider,配置连接驱动提供程序。

      d、dialect,用于配置NHibernate的方言环境,可以通过此配置使用数据库的某些特性。

      e、proxyfactory.factory_class,新版本Castle需要添加此配置,用来配置代理工厂的工厂类。

      f、connection.connection_string,用来配置数据连接字符串。

    初始化配置

      1、通过配置文件

    //获取web.config或者app.config中相应的配置信息
    IConfigurationSource cfgSrc = System.Configuration.ConfigurationManager.GetSection("activerecord") as IConfigurationSource;
    //初始化ActiveRecord ActiveRecordStarter.Initialize(cfgSrc,
    typeof(User));

      2、通过硬编码

    InPlaceConfigurationSource source = new InPlaceConfigurationSource();
    Hashtable properties = new Hashtable();

    properties.Add("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
    properties.Add("dialect", "NHibernate.Dialect.MsSql2000Dialect");
    properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
    properties.Add("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
    properties.Add("connection.connection_string", "Data Source=localhost;Initial Catalog=Study;User ID=sa;Password=******");

    source.Add(typeof(ActiveRecordBase), properties);
    ActiveRecordStarter.Initialize(source, typeof(ActiveRecordBase));

    注意:

      1、对于不同类型的数据库我们只需更改dialect和connection.connection_string字节信息即可

      2、常用的dialect

    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

    再次说明:本系列文章参考自李会军先生的Castle 开发系列文章,然后记录自己在学习时遇到的一些问题,记录之。

  • 相关阅读:
    (Redis基础教程之十) 如何在Redis中运行事务
    (Python基础教程之十三)Python中使用httplib2 – HTTP GET和POST示例
    (Redis基础教程之六)如何使用Redis中的List
    (Redis基础教程之九) 如何在Redis中使用Sorted Sets
    (Python基础教程之十九)Python优先级队列示例
    (Python基础教程之十八)Python字典交集–比较两个字典
    (Python基础教程之十七)Python OrderedDict –有序字典
    Heap_Sort
    Quick_Sort
    Merge_Sort
  • 原文地址:https://www.cnblogs.com/xinai/p/3717689.html
Copyright © 2011-2022 走看看