Я использую Asp.Net MVC и Entity Framework. У меня есть класс для управления сделкой по запросу следующим образом:Транзакция по запросу в нескольких dbcontext в EntityFramework
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
класс?
Можете ли вы объяснить о инициализации, открытии, закрытии и удалении соединения? Благодарю. –
Я имел в виду основы работы с подключением к базе данных, вы не хотите, чтобы они оставались открытыми или не располагались. –