8
我知道如果我使用System.Transactions.TransactionScope
而不指定隔離級別,它將默認爲Serializable
。但是,如果我不使用事務範圍,而只使用老式的表格適配器呢?什麼是默認的隔離級別呢?什麼是默認的ADO.NET隔離級別?
非常感謝提前。
我知道如果我使用System.Transactions.TransactionScope
而不指定隔離級別,它將默認爲Serializable
。但是,如果我不使用事務範圍,而只使用老式的表格適配器呢?什麼是默認的隔離級別呢?什麼是默認的ADO.NET隔離級別?
非常感謝提前。
如果您需要對應用程序數據操作進行絕對處理,您可能不希望依賴默認值。這些東西可以在框架版本之間改變。
強烈建議在所有數據調用中明確隔離級別和會話設置 - 可以通過TransactionScope(這可能意味着升級到DTC,取決於具體情況),也可以顯式在目標存儲過程調用中(如果這是所採用的路由)。
上DTC/TransactionScope的更多細節:https://stackoverflow.com/a/9075800/1568341
TL; DR
答:閱讀因犯SQLS但不要承擔默認
這是更復雜的;隔離級別在池連接的使用之間不會重置,所以它也取決於「底層連接的最後一次使用是做什麼的」 – 2012-03-23 18:26:17
@MarcGravell是的,這很好,謝謝。我的一位同事給我發了一個提到同樣事情的鏈接。不完全是成功的坑,以及我在使用.NET的7年中沒有注意到它我不知道... – 2012-03-23 18:37:54
但是「默認默認」可能是讀取提交 – 2012-03-23 18:44:22