将交易(或任何其他对象)传递给属性?

问题描述:

我有一套属性和获取方法,它加载(在get中)并保存(在集合中)数据到/从数据库。现在我想在一个事务中做到这一点,在我的情况下这是一个IDbTransaction。问题是,我怎么能给财产我的交易对象?我已经在使用该属性的代码交易...将交易(或任何其他对象)传递给属性?

谢谢:)

+2

你保存在数据库中的setter?你很想编写地狱! ;)属性应该是轻量级的。我见过的一些最糟糕的编码错误是由于属性做得太多而产生副作用 – 2010-12-06 08:11:07

你试过System.Transactions.Transaction.Current?这是一个静态属性,记录为here

您可以使用TransactionScope对象将呼叫包装到您的财产。使用块内的任何调用都将成为交易的一部分。

using (TransactionScope scope = new TransactionScope()) 
{ 
    // call properties and other code 

    scope.Complete(); // needed or transaction rolls back 
}