我正在使用EF数据库事务:
using (var transaction = DbContext.Database.BeginTransaction())
{
....//some processing
OrderRepository.AddOrUpdate(order);
task.ordersProcessed++;
BackgroundTaskRepository.Update(task);
....//
}
我想更新任务状态,但由于它包含在事务中,所以cahnges不会应用于数据库,直到所有处理都完成。两个存储库都使用相同的DbContext。
EF不支持并行事务,因此将BackgroundTaskRepository调用包装到另一个事务会导致异常。
有没有办法在不创建新的DbContext的情况下调用BackgroundTaskRepository.Update
“out of transaction”?