日期:2014-05-17  浏览次数:20574 次

.net 的事务交叉使用
我现在逻辑里面有两个函数,这两个函数里面都用了。net的事务
函数A里有自己的事务,函数B里有自己的事务。
我现在执行B函数,但是B函数里面的逻辑要调用A函数。

这样事务会出问题吗啊。现在从数据的记录来看,执行B函数后,有好多重复记录。

这些记录都是从函数A执行添加的,还有A中操作更新的表有些数据也没进行更新。

------解决方案--------------------
这么作是用来敷衍了事的。
------解决方案--------------------
你的那两个函数不混乱吗?
1、在你的逻辑里调用了函数A、B
2、函数B里还调用了A,
那么这样的话函数A就执行了两次,所以导致你有好多重复的记录,你应该把那两个函数中的事物之间的逻辑再好好理一下。
------解决方案--------------------
事务应该是对一连串的数据操作语句进行的保护,如果发生错误,可以回滚
你的应该是两个独立的事务,无论怎样,如果语句能正常运行,那么数据入库时,就应该增加重复判断,而不应该是事务的问题.
------解决方案--------------------
两个事务最好放在一起进行处理,不然会出问题的。函数B调用A,则将事务最为参数传个A。这样就把事务关联起来了!希望对你有帮助!
------解决方案--------------------
你这个是多个事务合成一个事务
事务不是应该有它的独立性与完整性吗?
还是不要在事务中包含另一个事务
------解决方案--------------------
我也遇到过你这种问题,我使用过两种解决方法
1:在A方法里,返回一个是否执行成功,如果B函数在调用A时发现执行不成功,则回滚自身.
2:在A方法里如果出错使用 throw new ArgumentException("错误消息");程序会自动中止,B就会自动回滚。我所说的出错,不只是程序上的,还包括业务逻辑上的。


"还有A中操作更新的表有些数据也没进行更新。"这个应该跟多重事务没什么关系,应该是你A方法里自身的问题。