C# 我可以在事务内部使用SqlBulkCopy吗
在C# 我可以在事务内部使用SqlBulkCopy吗,c#,sql,transactions,C#,Sql,Transactions,在TransactionScope中使用SqlBulkCopy安全吗?我知道这一点,但它没有回答这个问题,而且它相当古老。如果不可能,那么什么是好的选择?如果在创建和打开用于SqlBulkCopy的sql连接之前创建了TransactionScope,则使用TransactionScope的事务处理机制。这意味着您需要手动创建自己的SqlConnection并打开它,稍后用于SqlBulkCopy实例 using (var ts = new TransactionScope()) using (
TransactionScope
中使用SqlBulkCopy
安全吗?我知道这一点,但它没有回答这个问题,而且它相当古老。如果不可能,那么什么是好的选择?如果在创建和打开用于SqlBulkCopy
的sql连接之前创建了TransactionScope
,则使用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
vsSqlTransaction
注2:
这个答案纯粹来自阅读,到目前为止,我还没有上述的实证证据
注3:
自从我第一次回答以来,你提到的问题似乎有了一个新的答案,他给出了与我相同的答案,因此我希望他有经验证据:)(即,我如何从TransactionScope获取交易对象?@Luke101你不可能轻松做到这一点,如果有的话,但是,在
TransactionScope
中打开SqlConnection
似乎做了同样的事情。有关详细信息,请参阅我的更新答案。