我正在使用Asp.Net MVC和实体框架。我有一个类为每个请求的管理事务如下:EntityFramework中的多个dbcontext中的每个请求的事务处理
public class TransactionPerRequest :
IRunOnEachRequest, IRunOnError, IRunAfterEachRequest
{
private readonly ContextDB _Context;
private readonly HttpContextBase _HttpContext;
public TransactionPerRequest(ContextDB context,
HttpContextBase httpContext)
{
_Context = context;
_HttpContext = httpContext;
}
void IRunOnEachRequest.Execute()
{
_HttpContext.Items["_Transaction"] =
_Context.Database.BeginTransaction(IsolationLevel.ReadCommitted);
}
void IRunOnError.Execute()
{
_HttpContext.Items["_Error"] = true;
}
void IRunAfterEachRequest.Execute()
{
var transaction = (DbContextTransaction)_HttpContext.Items["_Transaction"];
if (_HttpContext.Items["_Error"] != null)
transaction.Rollback();
else
transaction.Commit();
}
}
我想使用多个上下文作为解释here
我怎样才能改变TransactionPerRequset
类?
你能解释一下关于连接初始化,打开,关闭和处理吗?谢谢。 –
我的意思是处理数据库连接的基础知识,你不想让它们保持开放或不处理。 –