• 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 开发系列文章,然后记录自己在学习时遇到的一些问题,记录之。

  • 相关阅读:
    Server-Sent Events(SSE) 简单实现和避坑
    使用ZIP进行多文件保存和读取(JDK1.7之后ZipOutputStream已经支持中文)
    IO
    页面临时添加a元素来模拟上传下载
    Centos 7启动jar包的详细步骤
    Redis 下载地址
    永久关闭win10自动更新
    同一命名空间下,无法引用类时
    Web应用程序项目******已配置为使用IIS。未能找到Web服务器
    VS2012打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
  • 原文地址:https://www.cnblogs.com/xinai/p/3717689.html
Copyright © 2020-2023  润新知