实体框架预生成的装配视图

时间:2013-09-20 23:32:11

标签: entity-framework

我刚刚开始使用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我没有任何更改,在这两种方式中我仍然有第一次延迟。

我确定我错过了什么,但不确定是什么。

提前致谢, 卢卡斯。

1 个答案:

答案 0 :(得分:1)

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

修改

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