ActiveRecord使用多数据库

AR原始文档

Accessing more than one database

» Home » ActiveRecord » Documentation » ActiveRecord RC1 Documentation » Advanced usage » Accessing more than one database

You can use more than one database with ActiveRecord. In order to do so you must create base classes that define, based on the hierarchy, which database is being used. Those are called Root types. If you use just one database, the root type is ActiveRecordBase.

Adding a different database

Let's analyze the steps involved in getting ActiveRecord to work with more than one database.

First: Create your root type

You must create an abstract class that extends ActiveRecordBase. This class can be empty. All ActiveRecord types bound to the second database must use it as the base class.

 

using Castle.ActiveRecord

 

public abstract class LogisticDatabase : ActiveRecordBase

{

}

Second: configure the second database

On the existing configuration, you must use add another config set bound to the abstract class you have just created. For more information on it, see Xml Configuration Reference.

Xml Configuration Reference

» Home » ActiveRecord » Documentation » ActiveRecord RC1 Documentation » Reference Manual » Xml Configuration Reference

The following is the definition of the expected xml schema. Differences regarding the how it must appear in a standalone xml file or in a configuration associated with an AppDomain (web.config for instance) are also explained below.

 

<configuration>

 

<activerecord

isWeb="true|false"

isDebug="true|false"

threadinfotype="custom thread info implementation"

sessionfactoryholdertype="custom session holder implementation"

namingstrategytype="custom namingstrategy implementation">

 

<config>

<add key="hibernate.connection.driver_class" value="NHibernate Driver" />

<add key="hibernate.dialect" value="NHibernate Dialect" />

<add key="hibernate.connection.provider" value="NHibernate Connection Provider" />

<add key="hibernate.connection.connection_string" value="connection string" />

</config>

 

<config type="Full Type name to Abstract Class that defines boundaries for different database">

<add key="hibernate.connection.driver_class" value="NHibernate Driver" />

<add key="hibernate.dialect" value="NHibernate Dialect" />

<add key="hibernate.connection.provider" value="NHibernate Connection Provider" />

<add key="hibernate.connection.connection_string" value="connection string" />

</config>

 

</activerecord>

 

</configuration>

The following table explains the attributes.

翻译:

  1. 新建一个abstract继承自ActiveRecordBase
  2. 新增一个 activerecordconfig

     

    假设新建的类为

 

using Castle.ActiveRecord

 

public abstract class LogisticDatabase : ActiveRecordBase

{

}

则新增的定义为

<config type=" LogisticDatabase ">

<add key="hibernate.connection.driver_class" value="NHibernate Driver" />

<add key="hibernate.dialect" value="NHibernate Dialect" />

<add key="hibernate.connection.provider" value="NHibernate Connection Provider" />

<add key="hibernate.connection.connection_string" value="connection string" />

</config>

让所以用到第二个数据库的domain都继承自此类。

 

转载于:https://www.cnblogs.com/shiningrise/archive/2007/08/30/876463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值