C#实体框架:执行交易操作

时间:2016-03-17 13:13:10

标签: c# entity-framework transactions

我正在使用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”?

0 个答案:

没有答案