2012-08-01 68 views
0

SaveChanges在保存大量记录时看起来很慢,即使记录的类型相同。下图显示了一个试图保存约60000条记录的性能分析会话,记录是混合类型,但是其中很多都共享相同的类型。我的期望是由SaveChanges调用的CreateDbCommandDefinition将被调用一次每个记录类型,令人惊讶的是它被分别调用每个记录。这当然会导致糟糕的表现。SaveChanges查询生成性能

我用EF 4.3.1和5.0检查了这一点,结果相同。有没有办法配置EF的方式,它不会创建一个命令每个记录插入/更新在数据库中?

回答

2

EF在单独的SQL命令中执行每个修改并单独往返数据库 - 这是性能不佳的主要原因。除非您从codeplex下载EF source code并自行执行命令批处理,否则目前无法更改此设置 - 甚至有related work itemfeature request