0

是否可以將TransactionScope用於類型化數據集?帶有類型化數據集的TransactionScope

爲:

using (var transaction = new TransactionScope()) 
{ 
    typedDataSet.DeleteStuff(id); 

    typedDataSet2.DeleteSomeOtherStuff(id2); 

    transaction.Complete(); 
} 

請問有關DeleteStuff(ID)和DeleteSomeOtherStuff(ID),如果拋出一個錯誤實際上是事務性的SQL查詢?

我已閱讀Bogdan Chernyachuk的文章Using Transactions with Strongly Typed datasets,我希望我不必這樣做。

回答

0

簡答:是的這是事務性的。

也不難測試。我在transaction.Complete()之前拋出了一個異常,並且數據沒有從數據庫中刪除。

using (var transaction = new TransactionScope()) 
{ 
    typedDataSet.DeleteStuff(id); 

    typedDataSet2.DeleteSomeOtherStuff(id2); 
    throw new NullReferenceException(); 
    transaction.Complete(); 
} 

雖然古怪我異形的服務器上被處決發生了什麼事情與SQL Server事件探查和那麼通過類型化數據集所引用的存儲過程的分貝。然而,數據以某種方式回滾。