【发布时间】:2015-06-23 22:23:55
【问题描述】:
我正在开发一个使用 Entity Framework 6.1.3 的 MVC 5 应用程序。我正在尝试通过预先生成视图来优化第一次调用,这通常需要 1-4 秒。我明白为什么会发生这种情况,但我觉得我在某个地方错过了重要的一步。
我当前的测试运行相同的函数五次,以使用 EF 从我的数据库中提取对象集合。当我在我的 edmx 中设置“嵌入输出目录”运行它时,我得到以下结果:
**
- 第一次 EF 调用:2617 毫秒
- 第二次 EF 调用:19 毫秒
- 第三次 EF 调用:19 毫秒
- 第四次 EF 调用:17 毫秒
- 第五次 EF 调用:20 毫秒
**
我希望这是因为 EF 正在生成本地视图来访问数据库...
当我切换到“复制到输出目录”时,仔细检查我的文件是否正在复制到 bin 文件夹并且我的连接字符串已更新,然后运行相同的测试,我会得到类似的结果:
**
- 第一次 EF 调用:2546 毫秒
- 第二次 EF 调用:19 毫秒
- 第三次 EF 调用:18 毫秒
- 第四次 EF 调用:18 毫秒
- 第五次 EF 调用:21 毫秒
**
第一次调用没有变化,这很奇怪。我添加了 EF Power Tools,右键单击我的 edmx => Entity Framework => Generate Views。为我的每个表/视图创建了一个带有字符串的“Model1.View.cs”文件,所以我觉得我走在了正确的道路上。当我再次运行测试时,我得到了相同的结果。在新生成的 'Model1.View.cs' 文件的每个方法中放置一个断点表明它永远不会被命中。
我在这里错过了重要的一步吗?如何告诉 EF 使用由 EF Power Tools 创建的文件,或者如何使复制到输出目录像我在线阅读的那样工作?
【问题讨论】:
标签: c# asp.net-mvc entity-framework ef-database-first