如何预编译我的EF视图

时间:2013-12-19 14:27:15

标签: entity-framework asp.net-mvc-4 entity-framework-6

以下是故事:我有一个巨大的MVC 2网站使用Entity Framework 4.0,几天前,我决定升级MVC 2 => MVC 4和EF4 => EF6和.NET Framework 4.5。

我在一个包含大约150个控制器和300多个实体的项目上做到了。

现在项目正在运行,但没有我想象的那么快。

我正在使用带有EF 5.x DBContext Generator T4的Entity Framework 6.0.2。我使用了数据库上下文生成器,因为使用EF4我做了数据库优先。

过去我使用此命令行预编译我的视图。

  

“%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ EdmGen.exe”/ nologo   / language:CSharp / mode:ViewGeneration   “/inssdl:$(TargetDir)Models/DBModel.ssdl”   “/incsdl:$(TargetDir)Models/DBModel.csdl”   “/inmsl:$(TargetDir)Models/DBModel.msl”   “/ outviews:$(PROJECTDIR)型号/ 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 个答案:

答案 0 :(得分:1)

您无法使用EdmGen为EF6生成视图。一种方法是使用PowerTools。我还创建了一些T4 templates(在VS Gallery上可用)来生成视图,one of them用于EF6。不确定它对你有多大帮助,因为EF6的目标是CodeFirst。最后,我最近发布了一个关于NuGet的软件包,它允许动态生成视图并保存以供日后使用 - 有关详细信息,请参阅this

顺便说一句。使用5.x DBContext生成器感觉错误,EF6感觉不对。随VS2013一起提供的EF工具(以及可用于VS2012的standalone version)使用EF6模板生成代码,因此我不确定为什么使用EF5版本(并且有点想知道它如何编译给定{{3 }})