问题标签 [precompiled-views]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
307 浏览

ef-code-first - EF 预编译视图可以与 Oracle 和 Devart 一起使用吗?

我们发现了一篇关于使用“预编译视图”提高实体框架性能的有趣文章:http: //neverindoubtnet.blogspot.ch/2012/03/squash-entity-framework-startup-time.html

我们已经尝试过 - 我们使用 EF Power Tools 扩展来自动生成预编译视图。之后我们的应用程序仍在运行,但我怀疑这些视图是否正在被使用。

上面的文章指出必须安装 SQL Express。我们将 DevArt dotConnect 与 Oracle 数据库一起使用。我想知道 Microsoft 编写的 EF Power Tools 应该如何知道预编译视图的正确 SQL 的样子。它是否查看 web.config 并发现 dotConnect 是提供程序并从该提供程序检索 SQL 语句?

为了引发这个荒谬的广告,我弄乱了预编译视图文件 (DataContext.Views.cs) 中的所有字符串并运行了应用程序 - 它仍然运行良好。

0 投票
1 回答
513 浏览

entity-framework - 当上下文位于与域类不同的项目中时,我应该首先将实体框架代码的编译视图放置在哪个程序集中

急需帮助。

我首先使用实体​​框架代码,并尝试遵循 Julie Lerman 关于从域类中分离上下文的建议,但我无法让实体框架识别编译后的视图。我已经尝试了很多东西,但到目前为止最好的是我可以调用编译视图的构造函数,但第一次查询仍然需要大约 15 分钟(大约 329 个实体和 600 多个视图创建)。这让我认为它仍然必须在第一个查询中创建视图。

脚步

  1. 使用现有数据库和“模型项目”,我运行 Entity Power Tools Beta 3 以“逆向工程师代码优先”数据库。这创建了上下文、域类和映射(流利的)类。仅供参考,我这样做是因为我稍微修改了 T4 模板以匹配我们的编码标准。

  2. 使用 Julie Lerman 从她的 Plural Site 培训视频中的建议,我将域类、上下文和映射类分解为 3 个独立的项目(上下文、域类、映射)。我将模型项目中的文件分别复制到这3个项目中,然后将命名空间更改为与项目名称和位置相对应。4 个项目的结果和命名空间:“MyCompany.DataContext”、“MyCompany.DomainClasses”、“MyCompany.DomainMappings”、“MyCompany.Model”。

  3. 使用“模型项目”和从 Entity Power Tools 生成的代码,我选择了创建的上下文文件并按下鼠标右键以显示上下文菜单,从而可以选择“生成视图”。当我这样做时,它会给我一个错误“序列不包含匹配元素”。(问题 #1)

  4. 好的,所以这不起作用,所以我将“Pawel Kadluczka”的 T4 模板添加到“MyCompany.DataContext”项目以生成视图并运行该自定义工具并成功,创建视图时没有错误。但是,当我运行测试应用程序进行基本查询时,第一个查询需要 15 分钟,并且生成的视图的构造函数“ViewsForBaseEntitySets1B04A...0F8A()”不会被调用。

  5. 好的,所以这也不起作用,所以我将 T4 模板创建的“视图”文件添加到“MyCompany.DomainClasses”项目中,这样它将与类一起编译并再次运行测试应用程序。这一次,第一个查询仍然需要 15 分钟,但在启动构造函数“ViewsForBaseEntitySets1B04A...0F8A()”后大约 20 秒内被调用。这是进步,但没有香蕉。这使我认为视图必须与域类而不是上下文位于同一程序集中。 问题:这是一个正确的假设吗? 此外,由于它仍然需要 15 分钟,就像 Entity Framework 看到了视图但不喜欢它们,所以它再次重新创建它们。 可能的?

怎么办?我不知所措,一直在用头撞墙。如何创建具有多个上下文的预编译视图?观点去哪儿了?是否有我不遵循的命名空间规则?当我有 2 个或更多上下文时会发生什么?

请帮忙。公元前

0 投票
1 回答
73 浏览

performance - EF 4.1 预编译视图生成问题

我有一个基于实体框架 4.1 DbContext 的模型。我正在使用 PocoModelGenerator.tt 文件来生成我的实体。我发现从我的本地代码中查询一个 20,000 行的 SQL 表大约需要 5 秒。直接在 SQL 中完成只需不到一秒钟的时间。为了提高性能,我按照下面链接中的方法生成预编译视图:

http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspx

但是性能根本没有提高。即使我第二次或第三次运行它,它实际上也有点慢。这是我的项目结构:

在此处输入图像描述

以下是生成的 MaterialsModel.Views.cs 文件的属性:

在此处输入图像描述

我有以下问题:

  1. 知道这里可能是什么问题吗?
  2. 如何检查生成的 MaterialsModel.Views.cs 是否正在编译到输出程序集中。
  3. 如何检查生成的视图是否确实被我的代码使用?
  4. 属性设置是否正确?
0 投票
1 回答
1068 浏览

entity-framework - EF 代码优先:生成预编译视图(VS 13 express)

我有一个首先使用 EF 代码的应用程序。不幸的是,第一个查询需要很长时间才能加载。仔细一看,才发现这是一个很常见的问题。显然 EF 需要初始化/生成一些视图才能正常工作。

为了加快速度,可以生成预编译视图。但我发现的所有解决方案都使用 EF Power Tools。不幸的是,无法在 VS Express 中安装 Power Tools,至少我还没有找到方法(如果我错了,请纠正我)。

有没有办法在没有电动工具的情况下生成视图?(也许是命令行?)

乔,但丁

0 投票
0 回答
1652 浏览

entity-framework - Entity Framework Code First:预生成的视图工作,但启动仍然很慢

我在我的 EF 项目中添加了预生成的视图。它实际上似乎正在工作。该init方法被调用,视图显然已加载。仅供参考,此方法称为:DbMappingView GetView(EntitySetBase extent).

然而,一切都没有改变。启动速度和以往一样慢:8 到 10 秒。所有后续查询都非常快。

我只有两个相当小的实体(共 20 列)。所以没什么复杂的。为什么还是这么慢?

0 投票
1 回答
820 浏览

asp.net-mvc - MVC RazorGenerator - “类型(...)已经定义了一个名为 'Execute' 的成员具有相同的参数类型”

我一直在开发一个大型 MVC 应用程序,现在我需要提高应用程序的启动性能(第一次加载时 +1 分钟不好)。

我也安装了 RazorGenerator nugget 和扩展,但是当我编译时出现了很多错误。

VS 错误

这可能是由于未指定生成器类型造成的吗?因为我没有发现他们的文档对此很有帮助。

或者可能是因为我将以下指令添加到我的一个视图(_EditHelperPage.cshtml)中,因为它呈现为HelperPage而不是WebViewPage

在我删除此行并将其添加到后razorgenerator.directives,它会引发另一个错误:

帮助页面错误

编辑

如果我搜索具有相同名称的类/构造函数,它会找到结果/obj/CodeGen/(...)

0 投票
0 回答
18 浏览

asp.net-mvc - 带有预编译视图的 MVC 插件

我最近使用 MEF 实现了一个插件框架,以包含外部 MVC 项目,并且一切正常。但是,尝试预编译站点不允许预编译插件视图,这是有道理的,因为它们不包含在项目中。即使我在发布主项目之前插入插件,有什么方法可以做到这一点。任何相关信息都有帮助。

0 投票
0 回答
173 浏览

razor - .NET Core MvcRazorCompileOnPublish .Views.dll v .PrecompiledViews.dll

我创建了一个空白的 .NET Core 2.2 项目并立即发布。这是我发布的内容:

在此处输入图像描述

如果我现在将以下内容添加到我的 .csproj 中:

然后再次发布,我得到如下发布的内容:

在此处输入图像描述

我无法在任何地方找到关于 WebApplication3.Views.dll 和 WebApplication3.PrecompiledViews.dll 之间区别的解释。在我看来,它们都像是一个预编译视图库。如果是这样,配置设置的意义何在?

0 投票
0 回答
115 浏览

c# - 使用预编译视图部署到 IIS 时的 MapRequestHandler 问题

我在部署带有预编译视图的 ASP.NET MVC 应用程序时遇到问题。直到现在我还没有预编译视图,并且应用程序已经完美运行了多年。如果我对它们进行预编译,该站点将按照您的预期在第一次启动时运行。但是,如果我从 IIS 重新启动它,我会开始收到 404.0 错误。有趣的是:如果我在 IIS 中更改应用程序的非必要配置,IIS 会自行重新启动应用程序,它就会变得生动起来。如果它被回收或重新启动,那么它会回到 404.0s。

我注意到错误页面描述了不正确的物理路径。在下面的屏幕截图中,物理路径是 C:\wwwsites\workpal\settings。实际上,“设置”是控制器名称,并且是路径中的文件夹:C:\wwwsites\workpal\views\settings,其中包含 index.cshtml。另外,这里应该使用 StaticFile 吗?我是新手,但对我来说,IIS 似乎不知道如何解析 URL。

错误

  • 应用程序正在运行 .NET 4.7.2
  • IIS 8.5
  • 应用程序已经工作了多年,没有预编译的视图,没有问题。我们之前使用过 .NET 4.5,但我怀疑是不是这个原因。我得到与 4.5 相同的结果。
  • 唯一的变化是在 VS 发布设置中打开预编译视图。我已经尝试了每个“高级预编译设置”配置 - 结果相同。
  • 具有预编译视图的应用程序在首次启动时工作,当 IIS 检测到应用程序目录中的更改或当我更改 IIS 中的非必要应用程序设置时。
  • 应用程序在回收或手动重新启动时不起作用。
  • 我试过新鲜的 AppPool 和新鲜的网站 - 无济于事。
  • 在两台不相关的服务器(物理机)上测试。
0 投票
0 回答
79 浏览

asp.net-mvc - 预编译的 ASP.NET MVC 视图在 Azure 中一段时间​​后变慢

我一直在我的产品发布/部署过程中使用预编译视图。我们经历了更快的启动和整体应用程序性能。但是,过了一会儿(几个小时),我们又开始出现慢页面。对此的直接解决方案是重新启动我们的 Azure Web 应用程序。

我想了解造成这种情况的根本原因,这样我们就可以避免在发生这种情况时重新启动 Azure Web 应用程序。

我正在使用 C#、ASP.NET MVC v4.8、Azure 应用服务。

即使使用预编译的视图,它似乎仍在页面加载期间编译视图。跟踪 Azure Profiler。

在此处输入图像描述