根据这篇文章http://social.technet.microsoft.com/wiki/contents/articles/handling-transactions-in-sql-azure.aspx
SQL Azure default database wide setting is to enable read committed
snapshot isolation (RCSI)
我的假设是否正确:
A) 以下代码默认为可序列化(覆盖数据库默认值)
using (TransactionScope transaction = new TransactionScope())
{
}
B) 以下代码默认为带有快照隔离的 ReadCommissed(而不仅仅是普通的 ReadCommited)
TransactionOptions options = new TransactionOptions();
options.Timeout = TimeSpan.FromMinutes(1);
options.IsolationLevel = IsolationLevel.ReadCommitted;
using (TransactionScope transaction = new
TransactionScope(TransactionScopeOption.Required, options))
{
}
最佳答案
a) 是的。默认情况下,隔离级别为可串行化。 http://msdn.microsoft.com/en-us/library/ms172152(v=vs.90).aspx
b) 对于该事务,隔离级别将仅为 ReadCommissed。对于快照,您需要
options.IsolationLevel = IsolationLevel.Snapshot;
http://msdn.microsoft.com/en-us/library/system.data.isolationlevel.aspx
关于entity-framework - Entity Framework 事务和sql azure默认隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796937/