我为每个请求使用一个 TransactionScope,如下所示:
public ActionResult Login(string user, string pass)
{
using (ServerContext context = new ServerContext ())
{
TransactionOptions transOptions = new TransactionOptions();
transOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
transOptions.Timeout = TransactionManager.MaximumTimeout;
using (var scope = new TransactionScope(TransactionScopeOption.Required, transOptions))
{
// Some logic and Linq queries here
}
}
我在事务范围内执行了一些插入、更新、删除和 proc 调用但是,我遇到了一些罕见的高负载死锁异常。所以,我做得对吗?还是最好为每个操作打开一个 TransactionScope?(但如果其中一个操作失败,我需要回滚所有操作。)
谢谢你。