【发布时间】:2019-07-10 23:31:36
【问题描述】:
TransactionScope 提供将一组操作转换为事务的功能,以便全部成功完成或不完成。我的问题是事务范围是否适用于某些类型的操作(例如,仅 SQL 连接、Azure 等)?
例如,考虑下面的代码块
using (TransactionScope scope = new TransactionScope())
{
SaveToSQLserver(parameter);
SaveToSalesForce(parameter);
SaveToSAP(parameter);
SaveToAzure(parameter);
scope.Complete();
}
现在假设SaveToSAP 发生错误,它已经保存到 Salesforce;事务将如何从 Salesforce 回滚?如果一切都在内存中,那么它如何确保它在实际保存时会成功?
【问题讨论】:
-
提交和回滚功能由各自的Resource Managers控制
标签: c# transactionscope