我正在开展一个项目,我有以下几个方案:
销售代表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优化,但在某些情况下插入的数据太多,用户必须等待很长时间才能完成请求。
任何帮助都将不胜感激。
答案 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);