2011-04-11 26 views
1

我們使用事務範圍在.Net 3.0中執行事務。我該如何配置它使用「讀取提交快照隔離」的事務中默認C#TransactionScope類配置

注:我們正在尋找一個地方,修復IE,快照配置條目

我們需要企業級的配置。我們不能爲每個在使用事務範圍的每一個地方有一個應用程序配置文件,我們可以改變它

+2

歡迎來到Stack Overflow!我已將您的兩個帳戶合併在一起。 [請閱讀有關基於Cookie的帳戶的此Faq條目。](http://meta.stackexchange.com/questions/44557/why-should-i-register-my-account/44562#44562)此外,StackOverflow不是一個論壇;如果您有新問題,請提出一個新問題。如果你想在你的問題中包含更多信息,請[編輯](http://stackoverflow.com/posts/5620833/edit)。如果您想與其中一位已回答的人進行互動,您可以留下評論。 – Will 2011-04-11 12:19:02

回答

2

試試這個:?

var scope = new TransactionScope(IsolationLevel.ReadCommitted) 

根據您的更新,試試這個:

var scope = new TransactionScope(IsolationLevel.Snapshot) 

查看this MSDN pageIsolationLevel枚舉獲取更多信息。

更新:

AFAIK,你不能在一個設置文件級配置這一點,只是因爲IsolationLevel通過建設這樣的事情的類型和外部配置的每個實例的決定是極其罕見(關於我的頭頂,我只能真正想到ASP.NET和控件可以實現的一個實例,但不是一種類型)。

此外,TransactionScopesealed類,這意味着您不能繼承和擴展其功能,以始終構造一個類型爲IsolationLevel.Snapshot的類型。

您可以創建自己的類型SnapshotIsolationLevelTransactionScope(例如),並公開UnderlyingTransactionScope屬性,以便您希望使用的功能類可用於調用者 - 這將允許您始終構建具有所需隔離的範圍級別,但仍需要您更改現有代碼,並在將來需要時繼續使用此類型。

+1

我已更新,嘗試提供答案和(可能的,也許不是所希望的)解決方案。 – 2011-04-11 14:26:40