2009-03-04 123 views
2

或許這只是一個愚蠢的想法,這就是爲什麼我折騰它在這裏:如何避免MSDTC?

我創建一個應用程序,使用一個數據庫爲基礎,目前的數據(客戶,文章,庫存,發票代開,...)每年一個數據庫存檔數據(舊發票,庫存移動......)。

只有一個討厭的小問題:MSDTC。大多數交易只接觸一個數據庫,但有幾個接觸當前數據庫和一個存檔年份。由於所有數據庫均在同一臺服務器上進行,因此這可能是跨兩個數據庫的簡單事務。

然而,LINQ到實體迫使我爲每個數據庫創建一個單獨的連接,並在這裏踢MSDTC,要求一)要安裝b)不拖慢整個事情。

煩人!

是不是有什麼辦法可以得到兩個ADO.Net實體框架模型,使用相同的連接,兩者都具有自己當前的數據庫?

我已經嘗試過specify the database in the EF Schema, but EF does not like this and blocks it.

很煩人。也許我應該把所有的表格移動到一個數據庫中,但是當試圖分離備份和加速的數據時,這會讓我們感到痛苦。

+0

如果您需要跨年做查詢,一個數據庫,每一年可能不是一個好辦法。如何在一個數據庫中分隔表格,或者更簡單地使用分區。 http://msdn.microsoft.com/en-us/library/ms345146.aspx因爲它需要SQL Server企業版可能增加$ 30- $ 50K取決於您的處理器配置,如果你尚未使用 – bobince 2009-03-04 16:29:25

回答

2

嘗試在連接上調用ChangeDatabase。如果您使用多個連接,MSDTC將始終參與其中。即使是一個數據庫。因此,我建議始終保持一個連接並通過此方法更改數據庫。

希望這會有所幫助。