2012-01-24 71 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(); 
}