3
我似乎無法找到一個明確的答案。我有一個SqlBulkCopy操作,它包含在一個TransactionScope中,幷包含許多其他操作。SqlBulkCopy是否在環境事務中登記?
我知道SqlBulkCopy構造函數中允許傳遞SqlTransaction對象的重載。假設我沒有在構造函數中傳遞事務,該命令是否會自動參與由TransactionScope創建的環境事務?
我似乎無法找到一個明確的答案。我有一個SqlBulkCopy操作,它包含在一個TransactionScope中,幷包含許多其他操作。SqlBulkCopy是否在環境事務中登記?
我知道SqlBulkCopy構造函數中允許傳遞SqlTransaction對象的重載。假設我沒有在構造函數中傳遞事務,該命令是否會自動參與由TransactionScope創建的環境事務?
我已經做了一些測試,看起來SqlBulkCopy事實上至少在.Net 4.5中承認了環境事務。
爲了測試,我在調試的時候做了一個SqlBulkCopy操作,並且驗證了這些行使它進入了數據庫(通過NOLOCK/dirty read query)。然後我在下一行代碼上拋出異常,並允許TransactionScope回滾。然後我證實這些行不再在數據庫中。