2013-12-19 51 views
0

這裏是故事:我有一個巨大的MVC 2網站使用實體框架4.0,並在幾天前,我決定升級MVC 2 => MVC 4和EF4 => EF6和。 NET框架4.5。如何預編譯我的EF視圖

我在一個包含大約150個控制器和300多個實體的項目上做了這個。

現在該項目正在運行,但速度並不像我想象的那樣快。

我使用實體框架6.0.2與EF 5.x DBContext生成器T4。我使用了數據庫上下文生成器,因爲使用EF4我首先創建了數據庫。

在過去,我使用這個命令行來預編譯我的視圖。

「%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 \ EdmGen.exe」/ NOLOGO /語言:CSHARP /模式:ViewGeneration 「/inssdl:$(TargetDir)Models/DBModel.ssdl 「 」/incsdl:$(TargetDir)Models/DBModel.csdl「 」/inmsl:$(TargetDir)Models/DBModel.msl「 」/outviews:$(ProjectDir)Models/DBModel.Views.cs「

XCOPY「$(TargetDir)Models/DBModel.csdl」「$(ProjectDir)」/ R/Y XCOPY 「$(TargetDir)Models/DBModel.ssdl」「$(ProjectDir)」/ R/Y XCOPY 「 $(TargetDir)Models/DBModel.msl「」$(ProjectDir)「/ R/Y XCOPY 「$(TargetDir)Models/SiteWeb.csdl」「$(ProjectDir)」/ R/Y XCOPY 「$(TargetDir)Models/SiteWeb.ssdl」「$(ProjectDir)」/ R/Y XCOPY 「$ TargetDir)Models/SiteWeb.msl「」$(ProjectDir)「/ R/Y

現在,我該如何對EF6做同樣的事情?

回答

1

您無法使用EdmGen爲EF6生成視圖。一種方法是使用PowerTools。我還創建了多個T4 templates(可在VS Gallery上獲得)用於生成視圖,one of them用於EF6。由於EF6的目標是CodeFirst,因此不確定它對您有多大幫助。最後,我最近在NuGet上發佈了一個包,允許隨時生成視圖並將其保存以供稍後使用 - 有關更多詳細信息,請參閱this

btw。使用5.x DBContext生成器感覺與EF6錯誤感覺不對。與VS2013一起提供的EF工具(和VS2012可用的standalone version)使用EF6模板生成代碼,因此我不確定爲什麼您使用EF5版本(並且有人想知道它如何編譯給定this