EF6模型创建非常缓慢,即使使用预编译视图。

4
我们有一个相当大的EF code-first模型,需要很长时间才能启动。使用EF5和预编译视图,加载时间为30-45秒。然而,升级到EF6.1后,加载时间超过3分钟。所有这些工作都发生在它开始查看预编译视图之前。
通过暂停调试器,我确定几乎所有的时间都花在了TablePrimitiveOperations.GetPropertyPathMatcher内部创建的匿名函数中调用SequenceEqual上(请参见源代码)。使用分析器,我确认80%以上的时间都花在了这个方法上。
这个问题是否有任何已知的解决方案?我已经在Connect上发布了它,但我想知道当前是否有可用的解决方法。

你使用什么数据库初始化策略? - vittore
我会创建一个自定义的数据库初始化策略,什么也不做,并创建一个小的控制台应用程序,只有在实际更改数据库时才运行该应用程序,它将使用正确的数据库初始化策略。 - vittore
@vittore:数据库已经存在(我们手动迁移它),因此我们不使用初始化程序(我们将初始化程序设置为null)。 - ChaseMedallion
这似乎是相关的。https://dev59.com/fGMl5IYBdhLWcg3wRlPo - jamesSampica
@Shoe:我认为这与那个问题无关。那个问题指的是另一个已经解决了的瓶颈。 - ChaseMedallion
尝试在目标机器上运行内存和磁盘分析器,并检查可能的争用和死锁。 - user3083619
1个回答

2
原文意思是:事实证明,这是 EF 6.1.0 中的一个实际 bug。微软已经创建了一个修复程序,可以在 6.1.1 beta 中使用,并将在 6.1.1 发行版中提供。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接