当前位置: 首页 > 编程语言 > C#

分享_1

时间:2023-04-10 21:06:42 C#

NestedTransactionsUsingTransactionScopeNestedtransactionsusingTransactionScope如果你有这样的东西:IBinaryAssetStructureRepositoryrep=newBinaryAssetStructureRepository();varuserDto=newUserDto{id=3345};vardto=newBinaryAssetBranchNodeDto("name",userDto,userDto);using(varscope1=newTransactionScope()){using(varscope2=newTransactionScope()){//持久化到数据库rep.CreateRoot(dto,1,false);范围2。完全的();}scope1.Dispose();}dto=rep.GetByKey(dto.id,-1,false);内部TransactionScope范围2是否也会回滚?是的。内部事务注册在与外部事务相同的范围内,整个事务将被回滚。出现这种情况是因为您没有使用TransactionScopeOption.RequiresNew将内部事务注册为新事务。有关此主题的解释,请参见此处:http://web.archive.org/web/20091012162649/http://www.pluralsight.com/community/blogs/jimjohn/archive/2005/06/18/11451.aspx.另请注意,scope1.Dispose是多余的,因为scope1将自动放置在声明它的using块的末尾。以上就是C#学习教程:嵌套事务使用TransactionScope分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: