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.  

    假设新建的类为

 

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都继承自此类。

 

posted @   shiningrise  阅读(590)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示