以下是故事:我有一个巨大的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做同样的事情?
答案 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 }})