是否有一个库使用另一个使用SqlBulkCopy的InsertAllOnSubmit实现?

时间:2009-10-02 15:19:52

标签: .net sql-server linq-to-sql

我们知道Linq-To-Sql InsertAllOnSubmit在性能方面很糟糕,但使用SqlBulkCopy进行大量插入需要一些编码。有没有人发现在InsertAllOnSubmit替代实现中使用SqlBulkCopy的任何代码/库都像原始一样简单?

2 个答案:

答案 0 :(得分:2)

所有我发现接近产生这样一个图书馆的是这个博客:Batch Updates and Deletes with LINQ to SQL

这是迈向正确方向的一步

编辑: 关于GetDeleteBatchCommand的评论。它在源代码中。这是代码:

private static DbCommand GetDeleteBatchCommand<TEntity>(this Table<TEntity> table, IQueryable<TEntity> entities) where TEntity : class
    {
        var deleteCommand = table.Context.GetCommand(entities);
        deleteCommand.CommandText = string.Format("DELETE {0}\r\n", table.GetDbName()) + GetBatchJoinQuery<TEntity>(table, entities);
        return deleteCommand;
    }

答案 1 :(得分:1)