我们的应用存在巨大的性能问题,我们从不同的系统收集数据并将其保存在我们的数据库中,以便稍后生成一些报告。使用EF4.2批量插入
我们使用实体框架4.2和DbSets,有没有这样做批量插入,然后Add方法有关DbSet每个实体的更好的办法?因为有与添加逻辑
oneThousandCustomers.Foreach(c => context.Customers.Add(c)); //This will take a minute
context.SaveChanges(); //This takes under a second
巨大的性能问题,我想add方法是引擎盖下做大量的查找等之类的东西,但我只是想批量插入这些数据。可能吗?
我们使用CQRS框架,并且每个请求注入上下文,更改上下文的行为有点危险,因为不能保证命令逻辑的其他部分在更改上下文行为后不会使用上下文。 – Anders 2012-03-08 10:00:03
如果您想要EF的好处,性能是危险的并且涉及妥协,那么您需要处理性能问题或手动管理环境以优化性能。如果你不想这样做,你也想要性能,那么不要使用EF。但是,我对CQRS,消息传递和批量导入以及EF(对于查询和写入)都做了完全相同的事情,并且它工作正常。 – 2012-03-08 11:16:31
我们选择这一个,因为它很容易改变我们现有的代码。所有的单元测试和场景测试都是绿色的,所以它看起来像在工作!谢谢! – Anders 2012-03-09 08:40:21