快速向数据库插入数千个到多个链接

时间:2016-02-15 17:33:50

标签: sql-server entity-framework

我正在开展一个项目,我有以下几个方案:

销售代表A可以处理产品1,2和3的客户x,y和z 销售代表B可以处理产品1,5和6的客户w,y和z

处理上面我有以下表结构:

SalesReps:一个表,其中包含SRID唯一标识的每个销售代表的详细信息 产品:包含所有具有唯一密钥PRID的产品的表格 客户:包含具有唯一密钥CID的客户详细信息的表格

最后,我将它们与表格

联系起来

RepProductCustomer:包含SRID,PRID和CID列

一般情况下一切正常,但在与拥有大量产品,客户和销售代表的公司打交道时,行数变得非常大,需要很长时间才能使用Entity Framework进行添加。

添加这些条目的最有效方法是什么?我可以使用某种存储过程或SQL命令来加快速度吗?我尝试了各种EF优化,但在某些情况下插入的数据太多,用户必须等待很长时间才能完成请求。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

不幸的是,您尝试的EF优化将无法工作,因为您的方案中的实际问题是执行的数据库往返次数(每个记录一次),这使得SaveChanges方法非常慢。

免责声明:我是该项目的所有者Entity Framework Extensions

BulkSaveChanges允许使用批量操作进行保存并减少数据库往返。

支持所有关联和继承。

// Upgrade SaveChanges performance with BulkSaveChanges
var context = new CustomerContext();
// ... context code ...

// Easy to use
context.BulkSaveChanges();

// Easy to customize
context.BulkSaveChanges(operation => operation.BatchSize = 1000);