【发布时间】:2015-09-04 00:47:14
【问题描述】:
我正在使用 TransactionScope 回滚失败的事务
bool errorReported = false;
Action<ImportErrorLog> newErrorCallback = e =>
{
errorReported = true;
errorCallback(e);
};
using (var transaction = new TransactionScope())
{
foreach (ImportTaskDefinition task in taskDefinition)
{
loader.Load(streamFile, newErrorCallback, task.DestinationTable, ProcessingTaskId);
}
if (!errorReported)
transaction.Complete();
}
我确定在此代码之前或之后没有启动 TransactionScope。 我正在使用实体框架插入我的数据库。
无论errorReported 的状态如何,事务都不会在出错时回滚。
我错过了什么?
【问题讨论】:
-
如果您决定希望该块成为自己的交易,独立于环境交易,您可以
new TransactionScope(TransactionScopeOption.RequiresNew)
标签: c# sql entity-framework