是否可以使用plinq ForAll批量插入数据库?

Omu*_*Omu 5 .net c# linq .net-4.0 plinq

我这样做:

 entities.AsParallel().ForAll(o => repository.Insert(o));
Run Code Online (Sandbox Code Playgroud)

这很好,我会有更多表现吗?

cRi*_*ter 4

不。

这个可能会更快,因为它利用了 SQL 的并行性,但最终 SQL 必须在进行插入时对表(页)进行锁定。因此,每个并行请求都会再次执行。

如果您想进行批量插入,请让 SP 接受所有条目(例如使用 SQL 2008 的表)或使用 Linq2SQL 进行操作。

这将是正确的设计解决方案。