我可以在简单的c#代码块(而不是数据库上下文)中还原更改吗?

时间:2015-02-10 06:36:51

标签: c# transactions rollback transactional

我搜索了很多关于“回滚交易”的内容。我发现实体框架5和TransactionScope()引入了Database.BeginTransaction(),它具有Entity Framework 6引入的函数commit和rollback。因此可以回滚数据库(上下文)。

我想知道是否可以撤消简单C#代码中的更改。(使代码块成为事务性)例如,在代码块中,我将项添加到列表中或更改变量值。然后发生异常,我们可以恢复(撤消)更改吗?这样我的List变空了,变量得到了它的第一个值?

1 个答案:

答案 0 :(得分:0)

您似乎正在寻找一种称为软件事务内存的东西:http://en.wikipedia.org/wiki/Software_transactional_memory

有一些实现,但AFAIK他们的性能很差,所以我怀疑你可以在真正的生产代码中使用它们