我可以在事务中使用 SqlBulkCopy 吗

Can I use SqlBulkCopy inside Transaction

TransactionScope 中使用 SqlBulkCopy 安全吗?我知道这个 question 但它没有回答这个问题而且它已经很老了。如果不可能,什么是好的选择?

似乎如果 TransactionScope 在用于 SqlBulkCopy 的 sql 连接创建并打开 TransactionScope 的事务处理机制之前创建被使用。这意味着您需要手动创建自己的 SqlConnection 并打开它,稍后用于 SqlBulkCopy 实例。

using (var ts = new TransactionScope())
using (var sqlCon = new SqlConnection(conStr))
{
  sqlCon.Open(); // ensure to open it before SqlBulkCopy can open it in another transactionscope.
  using (var bulk = new SqlBulkCopy(sqlCon))
  {
    // Do you stuff
    bulk.WriteToServer...
  }      

  ts.Complete(); // finish the transaction, ie commit
}

注1: 在 TransactionScope vs SqlTransaction

上阅读了一些内容后,答案发生了很大变化

注2: 这个答案纯属阅读,我目前还没有上述经验证据。

注3: 自从我第一次回复后,你提到的问题似乎有了新的答案,他给出了和我在这里一样的答案,所以我希望他有经验证据:) (ie )