Mic*_*tum 29 .net c# transactions .net-4.0 system.transactions
只是想知道,如果我想创建一个可以在TransactionScope中使用的类,我想要在TransactionScope中使用,我需要实现什么?
那就是:我的类需要知道它在一个Transaction中,但是如何在Commit或Rollback上得到通知?在Rollback上,我将如何实际回滚?
我假设我的类将具有"添加","更新"和"删除"等方法,这些方法仅修改临时更改列表,以及方法"读取",需要检测它是否在事务中并返回修改或未修改的数据相应地,但是我需要一个以某种方式调用的方法Commit/Rollback?
我会订阅Transaction.TransactionCompleted事件吗?如果是,我如何避免对同一交易的多个订阅?
我注意到事务没有ID,有没有办法管理/兼顾多个并发事务或嵌套事务?
System.Transactions的MSDN文档有很多内容,但似乎是针对消费者而不是实现者,所以我想知道某人是否有一个关于服务如何提供支持的良好来源(无论是在网络上还是在书中)交易?
让我们假设我的类没有已经支持事务的底层存储,并且只能"通过它".我们假设我的课看起来像这样:
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) { ... }
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*Jr. 17
本文很好地概述了所需的内容.它比较旧了,但我相信这一切仍然适用.
总结一下这篇文章,你需要调用Transaction类中的一个Enlist方法,传入一个实现.IEnlistmentNotification