2010-08-09 51 views
0

有一種方法使用Castle ActiveRecord集成(Castle.Facilities.ActiveRecordIntegration.dll)與多個數據庫?城堡ActiveRecord集成瓦特/多個數據庫

我已經意識到使用NHibernate與多個數據庫和ActiveRecord以及。但適用於整合設施我沒有發現任何東西。

有什麼建議嗎?

Tks !!

回答

1

這和訪問沒有設施的多個數據庫非常相似。定義爲每個數據庫一個<config>元件(如detailed in the AR docs),例如:

<facility id="arfacility"> 
    <assemblies> 
     <item>MyAssembly</item> 
    </assemblies> 
    <config> 
     <add key="connection.driver_class" value="NHibernate.Driver.SQLite20Driver" /> 
     <add key="dialect"     value="NHibernate.Dialect.SQLiteDialect" /> 
     <add key="connection.provider"  value="Castle.ActiveRecord.Testing.InMemoryConnectionProvider,Castle.ActiveRecord" /> 
     <add key="connection.connection_string" value="Data Source=:memory:;Version=3;New=True" /> 
     <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" /> 
    </config> 
    <config type="My.Secondary.Database.BaseClass, MyAssembly"> 
     <add key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver" /> 
     <add key="dialect"     value="NHibernate.Dialect.MsSql2000Dialect" /> 
     <add key="connection.provider"  value="NHibernate.Connection.DriverConnectionProvider" /> 
     <add key="connection.connection_string" value="Data Source=.;Initial Catalog=test;Integrated Security=SSPI" /> 
     <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" /> 
    </config> 
</facility> 

也可以使用DifferentDatabaseScope作爲替代。