2016-12-20 22 views

回答

4

StackOverflow上有多個類似的問題。請參閱thisthisthis

您必須創建兩個SessionFactoryISession實例,每個數據庫一個。此外,您應該使用TransactionScope並將數據庫操作包裝在其中的多個數據庫中。

下面的代碼是從答案由「Ricardo Peres」對於上述問題之一複製:

using (TransactionScope tx = new TransactionScope()) 
{ 
    using (ISession session1 = ...) 
    using (ITransaction tx1 = session.BeginTransaction()) 
    { 
    ...do work with session 
    tx1.Commit(); 
    } 

    using (ISession session2 = ...) 
    using (ITransaction tx2 = session.BeginTransaction()) 
    { 
    ...do work with session 
    tx2.Commit(); 
    } 

    tx.Complete(); 
} 
+0

謝謝,但我不知道是否有一些東西不意味着更改代碼在所有的應用程序,一些配置也許。 – mariaoialvarez

+0

我真的不能說(事實上沒有人可以)你將如何把它放在你的代碼中。如果您有任何中間層(如業務邏輯層),則可以在該級別處理此問題,而不是更改整個應用程序。如果您爲兩個數據庫使用單個存儲庫(因爲兩個數據庫共享相同的結構),您可以在存儲庫中控制這個。 –

相關問題