我有这段代码:
var to = new TransactionOptions();
to.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
using (var ts = new TransactionScope(TransactionScopeOption.Required, to))
{
someQuery.ToList();
ts.Complete();
}
无论如何,SQL Server Profiler都会显示" someQuery" (以及此事务的任何其他查询)以隔离级别" Read Committed"运行。
如果在someQuery.ToList();
之前执行此行,我可以强制以ReadUncommitted方式运行的唯一方法:
myContext.Database.ExecuteSqlCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
为什么SQL Server不尊重.Net隔离级别?我该怎么办?