2012-07-27 30 views
0

嘿,我有一個獨特和令人不安的情況。交易環繞企業數據庫代碼+實體框架代碼

我正在開發一個項目,其中我的團隊使用了企業數據庫和實體框架的混合體。顯然這可能不被推薦,但這是我堅持。我想採用使用Enterprise Data Library編寫的方法,並採用使用Entity Framework編寫的其他方法,並將這兩種方法都包裝在單個事務中(無需Microsoft分佈式事務服務)。我希望儘量減少重寫代碼,並能夠將這兩種方法按照原樣包裝在單個事務中。這可能嗎?謝謝。

使用SQL Server 2008和.NET 4.0

+0

答案可能是,但你沒有描述足夠詳細的方法來知道。其他可能影響答案的因素是數據庫和版本以及.NET版本。 – 2012-08-10 04:03:28

回答

1

要在同一TransactionScope混合EF和EntLib查詢,而無需使用DTC我想。

好消息:這是可能的。如果您爲EntLib DAAB和EF DbContext使用完全相同的連接字符串,則它將工作,具體取決於EF,EntLib和SQL Server的版本。

所以,你必須做的是:

  1. 檢查你有正確的版本
  2. 獲得由EF改變了你的連接字符串的版本,並使用它,而不是你的。

對1,我已經檢查了這些組合:

  • SQL Server必須在2008年或更舊
  • EntLib 4.1 + EF 5不起作用
  • EntLib 5件+ EF 5件作品

對於2,要獲取由EF更改的連接字符串,您必須調試使用DbContext實例的代碼的執行。設置斷點並觀察或檢查DbContext Database.Connection.ConnectionString屬性。這是連接字符串的EF版本。將它用於EF和EntLib,您將擺脫DTC。

相關問題