我想知道,如果我想创建一个类来执行某些操作,并且我希望它能够在TransactionScope中使用,我需要实现什么?
也就是说:我的类需要知道它在事务中,但是它如何在提交或回滚时得到通知?在回滚时,我该如何实际回滚?
我认为我的类会有像“添加”、“更新”和“删除”之类的方法,这些方法只修改一个临时更改列表,并且一个名为“读取”的方法需要检测是否在事务中并相应地返回修改或未修改的数据,但是然后我需要一个被调用的Commit/Rollback方法吗?
我应该订阅Transaction.TransactionCompleted事件吗?如果是,我如何避免对同一事务进行多次订阅?
我注意到事务没有ID,有没有办法管理/处理多个并发事务或嵌套事务?
MSDN文档System.Transactions有很多内容,但似乎是面向消费者而不是实现者的,因此我想知道是否有人有关于服务如何为事务提供支持的良好来源(无论是在Web上还是书籍中)?
假设我的类没有已支持事务并能够“直通”的基础存储。假设我的类看起来像这样:
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) { ... }
}