gpt4 book ai didi

c# - 预生成 Entity Framework View

转载 作者:太空狗 更新时间:2023-10-29 22:18:48 25 4
gpt4 key购买 nike

我正在开发一个使用 Entity Framework 6.1.3 的 MVC 5 应用程序。我正在尝试通过预生成 View 来优化第一次调用,这通常需要 1-4 秒。我明白为什么会这样,但我觉得我在某处错过了重要的一步。

我当前的测试运行相同的函数五次,以使用 EF 从我的数据库中提取对象集合。当我在我的 edmx 中设置“嵌入输出目录”运行它时,我得到以下结果:

**

  • 第一次 EF 调用:2617 毫秒
  • 第二次 EF 调用:19 毫秒
  • 第三次 EF 调用:19 毫秒
  • 第四次 EF 调用:17 毫秒
  • 第五次 EF 调用:20 毫秒

**

我希望如此,因为 EF 正在生成本地 View 以访问数据库...

当我切换到“复制到输出目录”时,仔细检查我的文件是否正在复制到 bin 文件夹并且我的连接字符串已更新,然后运行相同的测试我得到类似的结果:

**

  • 第一次 EF 调用:2546 毫秒
  • 第二次 EF 调用:19 毫秒
  • 第三次 EF 调用:18 毫秒
  • 第四次 EF 调用:18 毫秒
  • 第五次 EF 调用:21 毫秒

**

第一次调用没有变化,很奇怪。我添加了 EF Power Tools,右键单击我的 edmx => Entity Framework => Generate Views。为我的每个表/ View 创建了一个带有字符串的“Model1.View.cs”文件,所以我觉得我走在正确的道路上。当我再次运行测试时,我得到了相同的结果。在新生成的“Model1.View.cs”文件的每个方法中放置一个断点表明它永远不会被命中。

我是否错过了重要的一步?我如何告诉 EF 使用由 EF Power Tools 创建的文件,或者我如何使复制到输出目录像我在线阅读的那样工作?

最佳答案

据我所知,EF Power Tools 未更新为支持 EF6。如果您确定这是导致问题的 View 生成,您可以使用 View 生成 T4 template或交互式 pre-gegnerated views (是的,我是两者的创造者)。您可以在 this post 中找到有关如何使用 T4 模板的更多详细信息。 .描述了交互式预生成 View here .

但是,EF6 中的 View 生成得到了极大的改进,这只是较大模型或涉及复杂层次结构时的问题。我假设您看到的瓶颈不是由 View 生成引起的,而是由模型构建引起的。看看this post由 EF 团队讨论了一些关于通过生成 native 图像来提高启动性能的内容。您可能还想看看 Performance Consideration .

关于c# - 预生成 Entity Framework View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com