gpt4 book ai didi

c# - 关于嵌套事务,外部范围给我 "The Transaction has been aborted"异常,但内部范围成功返回

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:42 24 4
gpt4 key购买 nike

我有线问题需要你的帮助。我有嵌套交易。外部方法调用打开另一个事务范围的内部方法 SaveChangesToSource。其实我知道我的底层 sql 可能有问题。我无法理解的是为什么我的内部事务成功完成并且异常似乎被推迟到我调用外部处理完成。完成??

using (TransactionScope scope = new TransactionScope())
{
SaveChangesToSource(changes);
scope.Complete();
}


protected override void SaveChangesToSource(IEnumerable<IChange> changes)
{
using (TransactionScope scope = new TransactionScope())
{
_bl.SaveChanges(changes);
scope.Complete();
}
}

最佳答案

MS 文档说,在提交嵌套事务之前,在嵌套事务中所做的更改对于顶级事务是不可见的,即使如此,在提交该事务之前,更改在顶级事务之外是不可见的。恕我直言,如果我对此的解释正确,那么您的外部交易失败将触发您成功的内部交易的回滚。

关于c# - 关于嵌套事务,外部范围给我 "The Transaction has been aborted"异常,但内部范围成功返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com