0

我正在开发一个旧版应用程序,我们在实体框架(4.0.0)和大量插入方面表现不佳。

当我尝试 POCO 生成器 (T4) 时,问题更糟,SaveChanges 长了三倍。这是巨大的,如果你知道为什么我有这个问题,我很感兴趣。

4

1 回答 1

0

我没有针对不同生成器的任何性能指标。但无论如何,瓶颈不应该出现在您的上下文中。您应该知道,EF 每次插入、更新和删除都会生成一个 SQL 语句,如果您没有先显式打开连接,它将在每个 SQL 语句之前登录并从 sql server 注销一次。

此外,上下文必须保持状态和关系,因此随着上下文变得越来越大,性能会下降。SaveChanges 必须首先弄清楚上下文中发生了什么,这应该是 POCO 生成器与实体对象最终执行时间不同的原因。至于它是 3 倍长,将需要更多的细节来弄清楚。

PS,如果您坚持使用遗留代码,您应该考虑使用 EF 批量复制。

于 2013-10-15T15:32:26.707 回答