保存大量记录时,SaveChanges似乎非常慢,即使记录属于同一类型。下图显示了尝试保存约60000条记录的分析会话,记录是混合类型,但其中许多共享相同的类型。我的期望是每个记录类型会调用SaveChanges调用的CreateDbCommandDefinition一次,令人惊讶的是它会分别为每个记录调用它。这导致当然性能不佳。
我用EF 4.3.1和5.0检查了这两个,结果相同。无论如何配置EF的方式是它不会为每个在db中插入/更新的记录创建命令吗?
答案 0 :(得分:2)
EF在单独的SQL命令中执行每个修改并将往返分离到数据库 - 这是性能不佳的主要原因。除非您从codeplex下载EF source code并实施命令批处理,否则目前无法更改此设置 - 甚至有related work item和feature request。