【发布时间】:2014-11-19 23:51:48
【问题描述】:
我们有一个相当大的 EF 代码优先模型,需要很长时间才能启动。使用 EF5 和预编译视图,加载时间为 30-45 秒。但是,升级到 EF6.1 后,加载时间 > 3 分钟。所有这些工作甚至在它开始查看预编译视图之前就已经发生了。
通过暂停调试器,我确定几乎所有时间都花在调用由 TablePrimitiveOperations.GetPropertyPathMatcher 创建的匿名函数中的 SequenceEqual(请参阅the source)。使用分析器,我已经确认超过 80% 的时间都花在了这种方法上。
是否有任何已知的解决此问题的方法?我已经在Connect 上发布了它,但我想知道目前是否有可用的解决方法。
【问题讨论】:
-
你使用什么数据库初始化策略?
-
我会创建什么都不做的自定义数据库初始化策略,并创建只有在数据库实际更改时才会运行的小型控制台应用程序,这将使用正确的数据库初始化策略。
-
@vittore:数据库已经存在(我们手动迁移它),所以我们不使用初始化程序(我们将初始化程序设置为 null)。
-
@Shoe:我认为这无关。这个问题指的是另一个已经修复的瓶颈。
标签: c# performance entity-framework ef-code-first