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.
翻譯:
?
假設(shè)新建的類為
?
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>
讓所以用到第二個(gè)數(shù)據(jù)庫的domain都繼承自此類。
?
轉(zhuǎn)載于:https://www.cnblogs.com/shiningrise/archive/2007/08/30/876463.html
總結(jié)
以上是生活随笔為你收集整理的ActiveRecord使用多数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 感受七夕
- 下一篇: WWF(Windows Workflow