2011-04-04 75 views
1

我最近開始使用nhibernate 3和流利的nhibernate作爲我的ORM在家中構建一個域。我的域中的所有內容都可用自動映射不同的dll到不同的數據庫

我目前想探索使用automapper將我的解決方案中的不同dll映射到不同數據庫的可能性。我的Google-kung-fu正在用我的「研究」發現很少和無關的結果。

可以這樣做嗎?如果要完成,我的IQueryable會發生什麼情況,我的查詢可以包含來自不同數據庫的實體,而這些實體不一定由相同的數據庫實例或物理機器託管?

例如,我想這樣做(連接字符串是不同的):

connectionstring1:數據源= myTestServerAddress;初始目錄=測試;用戶ID = myTestUsername;密碼= myTestPassword;

namespace test //in assembly test, connectionstring1 
{ 
    public class test 
    { 
     public virtual int Id { get; set; } 
     public virtual string testme { get; set; } 
    } 
} 

connectionstring2:數據源= myTestTestServerAddress;初始目錄= TESTTEST;用戶ID = myTestTestUsername;密碼= myTestTestPassword;

namespace testtest //in assembly testtest, connectionstring2 
{ 
    public class testtest 
    { 
     public virtual int Id { get; set; } 
     public virtual test test { get; set; } //test is in different assembly 
    } 
} 
+0

您可以將兩個不同的程序集自動映射到不同的數據庫。這只是兩個不同的會話工廠(每個不同的數據庫都有一個)。就查詢而言,我不確定這是如何工作的。 – 2011-04-05 12:28:56

回答

0

我不確定爲什麼你想讓它們駐留在不同的數據庫中。你可以使用分片來負載均衡或(像Cole W所說的)只在testtest中保存test_id使用2個不同的sessionfactories,並在需要時從第一個打開會話以獲得測試。

相關問題