使用System.Transactions时替代保存点

时间:2011-03-23 22:48:04

标签: c# .net transactions transactionscope

如何使用System.Transactions命名空间中的类来实现与使用SqlTransaction.Save(savePoint)SqlTransaction.Rollback(savePoint)时相同的效果。使用这两种方法的效果是能够在正在运行的事务中创建命名保存点,并且在问题仅回滚到保存点的情况下(保存点之前创建的操作不回滚)。

2 个答案:

答案 0 :(得分:3)

保存点在其实施的一部分中是特定于数据库的。 Oracle实现了它们,显然SQL服务器也是如此。

System.Transactions专为全面交易而设计,而不是在交易过程中的中间保存点。

唉,因为在支持的最小公分母数据库中使用此功能会很好:ACCESS JET。

答案 1 :(得分:2)

yourcontext.Database.ExecuteSqlCommand(string.Concat(“save transaction”,savePoint));

yourcontext.Database.ExecuteSqlCommand(string.Concat(“rollback transaction”,savePoint));