2

我刚开始使用EF 6,注意到第一次执行需要更多时间,因为它需要编译,所以我研究并发现可以预先生成视图。

我使用 EF Power Tool 生成视图:http: //visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/

它是一个 dll,我正在使用 Embed in Output Assembly 选项进行构建。

问题是,即使我在执行第一个查询时有 view.cs,我也有相同的延迟,所以我的库似乎没有使用预生成的视图。

有什么问题?我正在使用返回 EntityConnection 对象的 EntityConnectionStringBuilder 将连接传递给实体。

我还尝试将 view.cs 更改为 Embedded Resource,因为使用 Compile 我没有任何更改,在这两种方式中我仍然有第一次延迟。

我确定我错过了一些东西,但不确定是什么。

在此先感谢,卢卡斯。

4

1 回答 1

1

EF5 视图不适用于 EF6(此外,EF6 Beta 1 和 EF6 RC1 存在一些问题,这些问题会阻止将视图用于 EF6 - 这些问题应针对 EF6 RTM 进行修复)。我创建了一个用于为 EF6 生成视图的 T4 模板 - 您可以在此处找到更多详细信息- 再次由于上述问题,模板生成的视图不适用于 EF6 RC1。如果您绝对认为您需要它,您可以尝试我的github上的版本- 它已更新为可与 EF6 RTM 一起使用,也可与夜间构建一起使用。无论如何,我很确定这实际上不是导致问题的视图生成(实际上 EF6 中视图生成的性能已经大大提高)。我们最近发现了一些性能问题(参见16741662) 影响启动时间,我们正在研究这些。

编辑

适用于 EF6 RTM 的模板版本(6.0.0.0、6.0.1.0)已发布到VS Gallery

于 2013-09-22T06:19:41.267 回答