0

我正在使用 dapper rainbow database.cs 扩展,

private void insertList(IEnumerable<myObject> list)
    {
          using (SqlConnection conn = new SqlConnection(connectionString))
        {
            var db = myDB.Init(conn, commandTimeout: 100);
            db.myTable.tableName = "ds.myTable";
            Parallel.ForEach(dsList, a => db.myTableInsert(a)
                        );
            db.Dispose();
        }
    }

这行不通,我想我需要打开和关闭 Parallel.ForEach 内的连接。这是写的方式吗?

我想使用这个扩展,它非常有用和手,但是有插入列表的问题。我在网上找不到任何关于使用此扩展程序和使用列表的信息。

4

1 回答 1

2

通常数据库连接不是线程安全的,因此在同一个连接上并行插入肯定会造成麻烦。

所以我会说是的,你需要打开和关闭Parallel.ForEach(). 您可能还想对其进行基准测试。我并不完全相信像在多个数据库连接上那样并行插入会比在单个连接上的常规循环中进行插入要快。

于 2013-12-11T19:24:33.757 回答