EF Code First预生成视图

3
在使用Entity Framework Code First和MySql构建新网站并将其部署到生产环境后,一个令人烦恼的问题是元数据缓存时经常出现的暂停。这似乎比应用程序池回收频率更高。(?)
我想对于一个有大量流量的网站,这可能不会经常被注意到。对于一个访问不频繁的新网站,每次访问网站时都会有4-5秒的延迟,第一页才能呈现。
因此,我找到了以下链接:

http://msdn.microsoft.com/en-us/library/bb896240.aspx

http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

EF Power Tools CTP1看起来很有前途,但它似乎在EF 4.3上出了问题并且已经好几个月没有更新了。此外,我不确定这个工具如何适用于我们的自动化构建流程。
EF Power Tools使用的OptimizeContext()或WriteEdmx()方法会抛出此错误。
System.Reflection.TargetInvocationException: 
Exception has been thrown by the target of an invocation. --->    System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. ---> System.Data.SqlClient.SqlException: 
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

我最初认为这可能与MySql有关,但在EF Power Tools Q&A部分中有几个人报告了这个问题。

简而言之,我应该如何预生成EF 4.3 Code First的视图,最好是以可以插入自动化构建流程的方式?


2
根据这篇文章,Power Tools CTP 2应该很快就会推出,我猜测新版本将支持EF 4.3和EF 5。 - Ladislav Mrnka
经过几个小时的时间浪费后,似乎MySql是问题的一部分,这篇文章解决了这个问题。http://www.devart.com/blogs/dotconnect/index.php/using-entity-framework-power-tools-ctp1-with-oracle-mysql-postgresql-and-sqlite.html我需要解决的剩下的问题是如何在我们的构建过程中生成Context.View.cs文件。我将在EF Power Tools问答中提问,并回报结果,以帮助其他人。 - NickH
EF Power Tools Beta 2 即将发布在过去的六个月中,Entity Framework 取得了很大进展,而我们的 Power Tools 却落后了。我们目前正在更新版本,并计划在接下来的几周内发布。 - Pawel
2个回答

1
Pawel回答了我的相关问题: Entity Framework初始化很慢-我该怎么做才能更快地引导它? 通过构建T4模板:

http://blog.3d-logic.com/2012/05/28/entity-framework-code-first-and-pre-generated-views/

这些也不是完美的,但比我见过的其他任何东西更实用。

然后你可以做类似于:

http://www.platinumbay.com/blogs/dotneticated/archive/2009/08/28/running-t4-templates-with-msbuild.aspx

要将其添加到构建过程中,但这有点慢,因此您可能希望将其作为更新EF模型的(另一个)手动步骤。

实际上,他们需要一个警告,指出不要使用EF与> 500个表,否则使用起来会变得越来越烦人。


0
当我运行VS2010,EF v4.3.1和Entity Framework Power Tools Beta 2时,我遇到了相同的错误。解决办法是以管理员身份运行Visual Studio(右键单击图标并从上下文菜单中选择“以管理员身份运行”)。此时,我可以在EFPT中使用“生成视图”选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接