1

我的场景有点奇怪,我有一个实体列表,比如说我在列表中有十个项目,它们将转到三个不同的表,彼此关联。我正在使用 Linq 2 Sql,我需要将它插入一次点击而不是多次迭代。

这可能吗。我听说,在 BLtoolkit 中有一个 InsertBatch() 方法可以执行批量插入。L2S 中的任何类似内容。

4

2 回答 2

2

InsertAllOnSubmit。使用 Linq To SQL,您只需设置要更改以进行更新的属性。然后打电话SubmitChanges会为你做剩下的..

于 2011-08-28T18:10:44.727 回答
1

简而言之:不,这是不可能的。

InsertAllOnSubmit 基本上只是每次调用 InsertOnSubmit。所以这并没有多大帮助。

如果您分析生成的 SQL,您将看到您将获得大量单独的插入语句,从而导致大量开销。无论使用 InsertOnSumbit 还是 InsertAllOnSumbit。

如果您四处搜索,您会看到一些尝试将 SqlBulkCopy 行为添加到 Linq-2-sql。例如:http: //blogs.microsoft.co.il/blogs/aviwortzel/archive/2008/05/06/implementing-sqlbulkcopy-in-linq-to-sql.aspx

但是,我认为您最好自己为批处理作业实施 SqlBulkCopy。

于 2011-08-29T08:42:41.320 回答