Как предварительно скомпилировать мои EF-представления

asp.net-mvc-4 entity-framework entity-framework-6

Вопрос

Вот история: у меня был огромный веб-сайт MVC 2 с использованием Entity Framework 4.0 и несколько дней назад я решил обновить MVC 2 => MVC 4 и EF4 => EF6 и .NET Framework 4.5.

Я сделал это по проекту, содержащему около 150 контроллеров и более 300 объектов.

Теперь проект работает, но не так быстро, как я думал.

Я использую Entity Framework 6.0.2 с EF 5.x DBContext Generator T4. Я использовал генератор контекста DB, потому что с EF4 я сделал Database First.

Раньше я использовал эту командную строку для предварительной компиляции моих просмотров.

msgstr "% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ EdmGen.exe" / nologo / language: ) Модели / DBModel.csdl "" /inmsl:$(TargetDir)Models/DBModel.msl "" /outviews:$(ProjectDir)Models/DBModel.Views.cs "

XCOPY "$ (TargetDir) Модели / DBModel.csdl" "$ (ProjectDir)" / R / Y XCOPY "$ (TargetDir) Модели / DBModel.ssdl" "$ (ProjectDir)" / R / Y XCOPY "$ (TargetDir) Модели / DBModel.msl "" $ (ProjectDir) "/ R / Y XCOPY" $ (TargetDir) Модели / SiteWeb.csdl "" $ (ProjectDir) "/ R / Y XCOPY" $ (TargetDir) Модели / SiteWeb.ssdl " "$ (ProjectDir)" / R / Y XCOPY "$ (TargetDir) Модели / SiteWeb.msl" "$ (ProjectDir)" / R / Y

Теперь, как мне сделать то же самое с EF6?

Принятый ответ

Вы не можете использовать EdmGen для создания представлений для EF6. Один из способов - использовать PowerTools . Я также создал несколько шаблонов T4 (доступно в VS Gallery) для создания представлений, а один из них - для EF6. Не уверен, насколько это полезно для вас, поскольку EF6 нацелен на CodeFirst. Наконец, недавно я опубликовал пакет на NuGet, который позволяет генерировать представления «на лету» и сохранять их позже - см. Это для более подробной информации.

Кстати. Использование генератора 5.x DBContext неправильно работает с EF6. EF Tooling, поставляемый с VS2013 (и автономной версией, доступной для VS2012), использует шаблоны EF6 для генерации кода, поэтому я не уверен, почему вы используете версию для EF5 (и я задаюсь вопросом, как она даже компилируется с учетом этого )



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему