将交易(或任何其他对象)传递给属性?
问题描述:
我有一套属性和获取方法,它加载(在get中)并保存(在集合中)数据到/从数据库。现在我想在一个事务中做到这一点,在我的情况下这是一个IDbTransaction。问题是,我怎么能给财产我的交易对象?我已经在使用该属性的代码交易...将交易(或任何其他对象)传递给属性?
谢谢:)
答
您可以使用TransactionScope
对象将呼叫包装到您的财产。使用块内的任何调用都将成为交易的一部分。
using (TransactionScope scope = new TransactionScope())
{
// call properties and other code
scope.Complete(); // needed or transaction rolls back
}
你保存在数据库中的setter?你很想编写地狱! ;)属性应该是轻量级的。我见过的一些最糟糕的编码错误是由于属性做得太多而产生副作用 – 2010-12-06 08:11:07