SqlBulkCopy是否在环境事务中登记?

Phi*_*ler 5 c# sql-server transactions transactionscope

我似乎无法找到一个明确的答案.我有一个SqlBulkCopy操作,它包含在TransactionScope中,并带有许多其他操作.

我知道SqlBulkCopy构造函数中允许传递SqlTransaction对象的重载.假设我没有在构造函数中传递事务,该命令是否会自动参与TransactionScope创建的环境事务?

Phi*_*ler 5

我已经完成了一些测试,看起来SqlBulkCopy实际上支持环境事务,至少在.Net 4.5中.

为了测试,我在调试时做了一个SqlBulkCopy操作,并验证了这些行是否已经进入数据库(通过NOLOCK/dirty read查询).然后我在下一行代码上抛出异常,并允许TransactionScope回滚.然后我验证了行不再在数据库中.