mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 BulkCopy 与线程事务未传播的 bug;#962
This commit is contained in:
parent
9bd6e83ed7
commit
92885e7b11
@ -48,15 +48,19 @@ public static partial class FreeSqlDamengGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
using (var bulkCopy = new DmBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as DmConnection, copyOptions, insert._orm.Ado.TransactionCurrentThread as DmTransaction))
|
||||||
using (var bulkCopy = copyOptions == DmBulkCopyOptions.Default ?
|
|
||||||
new DmBulkCopy(conn.Value as DmConnection) :
|
|
||||||
new DmBulkCopy(conn.Value as DmConnection, copyOptions, insert.InternalTransaction as DmTransaction))
|
|
||||||
{
|
|
||||||
writeToServer(bulkCopy);
|
writeToServer(bulkCopy);
|
||||||
|
else
|
||||||
|
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
||||||
|
{
|
||||||
|
using (var bulkCopy = copyOptions == DmBulkCopyOptions.Default ?
|
||||||
|
new DmBulkCopy(conn.Value as DmConnection) :
|
||||||
|
new DmBulkCopy(conn.Value as DmConnection, copyOptions, insert.InternalTransaction as DmTransaction))
|
||||||
|
{
|
||||||
|
writeToServer(bulkCopy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
|
@ -50,10 +50,11 @@ public static class FreeSqlMySqlConnectorGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
writeToServer(new MySqlBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as MySqlConnection, insert._orm.Ado?.TransactionCurrentThread as MySqlTransaction));
|
||||||
writeToServer(new MySqlBulkCopy(conn.Value as MySqlConnection));
|
else
|
||||||
}
|
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
||||||
|
writeToServer(new MySqlBulkCopy(conn.Value as MySqlConnection));
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
@ -109,10 +110,11 @@ public static class FreeSqlMySqlConnectorGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
await writeToServer(new MySqlBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as MySqlConnection, insert._orm.Ado?.TransactionCurrentThread as MySqlTransaction));
|
||||||
await writeToServer(new MySqlBulkCopy(conn.Value as MySqlConnection));
|
else
|
||||||
}
|
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
||||||
|
await writeToServer(new MySqlBulkCopy(conn.Value as MySqlConnection));
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
|
@ -48,15 +48,19 @@ public static partial class FreeSqlOracleGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
using (var bulkCopy = new OracleBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as OracleConnection, copyOptions))
|
||||||
using (var bulkCopy = copyOptions == OracleBulkCopyOptions.Default ?
|
|
||||||
new OracleBulkCopy(conn.Value as OracleConnection) :
|
|
||||||
new OracleBulkCopy(conn.Value as OracleConnection, copyOptions))
|
|
||||||
{
|
|
||||||
writeToServer(bulkCopy);
|
writeToServer(bulkCopy);
|
||||||
|
else
|
||||||
|
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
||||||
|
{
|
||||||
|
using (var bulkCopy = copyOptions == OracleBulkCopyOptions.Default ?
|
||||||
|
new OracleBulkCopy(conn.Value as OracleConnection) :
|
||||||
|
new OracleBulkCopy(conn.Value as OracleConnection, copyOptions))
|
||||||
|
{
|
||||||
|
writeToServer(bulkCopy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
|
@ -92,15 +92,19 @@ public static partial class FreeSqlSqlServerGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
using (var bulkCopy = new SqlBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as SqlConnection, copyOptions, insert._orm.Ado.TransactionCurrentThread as SqlTransaction))
|
||||||
using (var bulkCopy = copyOptions == SqlBulkCopyOptions.Default ?
|
|
||||||
new SqlBulkCopy(conn.Value as SqlConnection) :
|
|
||||||
new SqlBulkCopy(conn.Value as SqlConnection, copyOptions, null))
|
|
||||||
{
|
|
||||||
writeToServer(bulkCopy);
|
writeToServer(bulkCopy);
|
||||||
|
else
|
||||||
|
using (var conn = insert.InternalOrm.Ado.MasterPool.Get())
|
||||||
|
{
|
||||||
|
using (var bulkCopy = copyOptions == SqlBulkCopyOptions.Default ?
|
||||||
|
new SqlBulkCopy(conn.Value as SqlConnection) :
|
||||||
|
new SqlBulkCopy(conn.Value as SqlConnection, copyOptions, null))
|
||||||
|
{
|
||||||
|
writeToServer(bulkCopy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
@ -167,15 +171,19 @@ public static partial class FreeSqlSqlServerGlobalExtensions
|
|||||||
{
|
{
|
||||||
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
if (insert.InternalConnection == null && insert.InternalTransaction == null)
|
||||||
{
|
{
|
||||||
using (var conn = await insert.InternalOrm.Ado.MasterPool.GetAsync())
|
if (insert._orm.Ado?.TransactionCurrentThread != null)
|
||||||
{
|
using (var bulkCopy = new SqlBulkCopy(insert._orm.Ado.TransactionCurrentThread.Connection as SqlConnection, copyOptions, insert._orm.Ado.TransactionCurrentThread as SqlTransaction))
|
||||||
using (var bulkCopy = copyOptions == SqlBulkCopyOptions.Default ?
|
|
||||||
new SqlBulkCopy(conn.Value as SqlConnection) :
|
|
||||||
new SqlBulkCopy(conn.Value as SqlConnection, copyOptions, null))
|
|
||||||
{
|
|
||||||
await writeToServerAsync(bulkCopy);
|
await writeToServerAsync(bulkCopy);
|
||||||
|
else
|
||||||
|
using (var conn = await insert.InternalOrm.Ado.MasterPool.GetAsync())
|
||||||
|
{
|
||||||
|
using (var bulkCopy = copyOptions == SqlBulkCopyOptions.Default ?
|
||||||
|
new SqlBulkCopy(conn.Value as SqlConnection) :
|
||||||
|
new SqlBulkCopy(conn.Value as SqlConnection, copyOptions, null))
|
||||||
|
{
|
||||||
|
await writeToServerAsync(bulkCopy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (insert.InternalTransaction != null)
|
else if (insert.InternalTransaction != null)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user