2012-01-24 66 views
1

背景创建具有多个交易对象的最佳实践:什么是与企业库5.0

我有了许多有其他对象的属性的对象。在保存主对象之后,我将一条记录插入到数据库中,然后调用子对象的Save方法。该模型中的当前风险是,如果主对象保存到数据库中,但其中一个子对象不存在,则数据不会反映准确的状态。

我的.NET 4.0应用程序使用Enterprise Library 5.0,数据存储在一个SQL Server 2008数据库中。我希望实现事务支持,以便在所有保存成功时保存所有对象,或在失败时回滚。

问:

我发现了一个good but dated article有关事务支持.NET 2.0中VS .NET 1.0/1.1,但想知道目前最好的做法是实现事务支持什么。

回答

1

我最终用System.Transactions.TransactionScope去了上面引用的文章。连接到数据库时,Enterprise Library 3.0和更高版本查找Transaction.Current。您不必显式传递交易信息。

using(TransactionScope scope = new TransactionScope()) 
{ 
    /* Perform transactional work here */ 
    //No errors-commit transaction 
    scope.Complete(); 
}