你可以運行一個SQL查詢來檢查隔離級別:
SELECT CASE transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'ReadUncomitted'
WHEN 2 THEN 'Readcomitted'
WHEN 3 THEN 'Repeatable'
WHEN 4 THEN 'Serializable'
WHEN 5 THEN 'Snapshot' END AS IsolationLevel
FROM sys.dm_exec_sessions
where session_id = @@SPID
編輯
基於下面的評論中,還有一個方式來獲得該代碼的隔離級別。這可能是這樣的:
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection connection1 = new SqlConnection("Data Source=localhost;Integrated Security=True"))
{
Transaction trans = Transaction.Current;
System.Transactions.IsolationLevel level = trans.IsolationLevel;
}
}
您可以通過致電Transaction.Current
獲得當前交易。
來源:Implementing an Implicit Transaction using Transaction Scope
我的單元測試不涉及任何後端運行。 –
所以我不確定你想要單元測試...你在嘲笑數據庫連接? – Szymon
我有一個實用的方法,返回一個TransactionScope與一些硬編碼設置,如超時值和隔離級別。 我想單元測試驗證返回的TransactionScope實例是否正確構造。這是一個失敗的安全措施,以確保如果有人對此代碼進行了一些修改,測試將會中斷。 –