C# 如何创建使用TransactionScope的类?
只是想知道,如果我想创建一个做一些事情的类,并且我想能够在TransactionScope中使用,我需要实现什么 也就是说:我的类需要知道它在一个事务中,但是如何在提交或回滚时得到通知呢?在回滚时,我将如何实际回滚 我假设我的类会有像“Add”、“Update”和“Delete”这样的方法,它们只修改临时的更改列表,还有一个方法“Read”,它需要检测它是否在事务中,并相应地返回修改或未修改的数据,但是我需要一个方法Commit/Rollback,它会以某种方式被调用吗 我是否要订阅Transaction.TransactionCompleted事件?如果是,如何避免对同一事务进行多个订阅 我注意到事务没有ID,有没有办法管理/处理多个并发事务或嵌套事务 的MSDN文档有很多内容,但它似乎是针对消费者而不是实现者的,所以我想知道是否有人(在web上或书中)有关于服务如何为事务提供支持的好来源 让我们假设我的类没有已经支持事务的底层存储,并且能够“传递它”。让我们假设我的类如下所示:C# 如何创建使用TransactionScope的类?,c#,.net,.net-4.0,transactions,system.transactions,C#,.net,.net 4.0,Transactions,System.transactions,只是想知道,如果我想创建一个做一些事情的类,并且我想能够在TransactionScope中使用,我需要实现什么 也就是说:我的类需要知道它在一个事务中,但是如何在提交或回滚时得到通知呢?在回滚时,我将如何实际回滚 我假设我的类会有像“Add”、“Update”和“Delete”这样的方法,它们只修改临时的更改列表,还有一个方法“Read”,它需要检测它是否在事务中,并相应地返回修改或未修改的数据,但是我需要一个方法Commit/Rollback,它会以某种方式被调用吗 我是否要订阅Transa
public class MyClass {
private List<MyObject> _businessData;
public void Create(Myobject data) { ... }
public MyObject Read(string query) { ... }
public void Update(Myobject data) { ... }
public void Delete(Myobject data) { ... }
}
公共类MyClass{
私有列表(businessData),;
公共void创建(Myobject数据){…}
公共MyObject读取(字符串查询){…}
公共无效更新(Myobject数据){…}
公共无效删除(Myobject数据){…}
}
对所需内容有很好的概述。它更老了,但我相信它仍然适用
为了总结本文,您需要调用类上的一个
登记
方法,传入IEnlistmentNotification
的实现,如果有人想知道,那就是link#4 google“参与System.Transaction”谢谢。这篇文章是一篇很好的概述,但不是很深入(例如,如果我支持多个并发事务,我如何知道提交了哪个事务)。但是ResourceManager作为一个关键词帮助我找到了类似的文章来填补空白。