MVC 3 Ошибка лесов при запуске контроллера лесов - PullRequest
3 голосов
/ 19 августа 2011

Я установил MvcScaffolding без каких-либо проблем, но когда я пытаюсь выполнить запрос скаффолда, я получаю сообщение об ошибке «DbContext.Task.t4» не существует вместе с другими файлами, которые отсутствуют. У меня есть модель под названием «Задача», на которую, я думаю, она ссылается, но я не знаю, как исправить эту ошибку?

"Задача контроллера скаффолдов -ModelType Task -ControllerName TasksController -DbContextType TasksDbContext "

Установочный пакет MvcScaffolding

  • PM> Установочный пакет MvcScaffolding
  • Попытка разрешить зависимость 'T4Scaffolding (≥ 1.0.2)'.
  • Попытка разрешить зависимость EntityFramework (≥ 4.1.10311.0).
  • Успешно установлен «MvcScaffolding 1.0.2».
  • Успешно добавлено «MvcScaffolding 1.0.2» в MvcApplication1.

Error

  • PM> Задача контроллера скаффолдов -ModelType Task -ControllerName TasksController -DbContextType TasksDbContext

Задачи лесовКонтроллер ...

Find-ScaffolderTemplate: Не удалось найти шаблон 'DbContext.Task.t4' в папках ['C: \ Development \ MVCPLTaskmanager \ MvcApplication1 \ packages \ T4Scaffolding.1 .0.2 \ инструменты \ EFDbContext '] В строке: 1 символ: 23 + param ($ c, $ a) возврат. <<<< $ c @a + CategoryInfo: NotSpecified: (:) [Find-ScaffolderTemplate], исключение + FullyQualifiedErrorId: T4Scaffolding.Cmdlets.FindScaffolderTemplateCmdlet </p>

Get-ProjectType: не удается найти тип, соответствующий имени 'MvcApplication1.Models.TasksDbContext'. Попробуйте указать полное имя типа, включая namesp Туз. В C: \ Development \ MVCPLTaskmanager \ MvcApplication1 \ packages \ T4Scaffolding.1.0.2 \ tools \ EFDbContext \ T4Scaffolding.EFDbContext.ps1: 45 char: 39 + $ foundDbContextType = Get-ProjectType <<<< ($ dbContextNamespace + "." + $ DbContextType) -Project $ Project + CategoryInfo: NotSpecified: (:) [Get-ProjectType], InvalidOperationException + FullyQualifiedErrorId: T4Scaffolding.Cmdlets.GetProjectTypeCmdlet </p>

Invoke-Scaffolder: создал контекст базы данных TasksDbContext, но не смог найти его как элемент проекта В C: \ Development \ MVCPLTaskmanager \ MvcApplication1 \ packages \ MvcScaffolding.1.0.2 \ tools \ Controller \ MvcScaffolding.Controller.ps1: 71 char: 40 +1 t -CodeLanguage $ CodeLanguage -BlockUi + CategoryInfo: Не указано: (:) [Invoke-Scaffolder], RuntimeException + FullyQualifiedErrorId: T4Scaffolding.Cmdlets.InvokeScaffolderCmdlet

ОТВЕТ Оказывается, что пространство имен моей модели должно совпадать с проектом MVC. Как только я изменил пространство имен, строительные леса сработали.

1 Ответ

0 голосов
/ 06 декабря 2013

У меня была такая же проблема, но это происходило из-за ошибок в классах моделей, из-за которых они не собирались.Таким образом, не было модели, соответствующей названию, которое я дал скаффолдингу, и он пришел к выводу, что я не использовал правильное пространство имен.

Итак ...

  • Проверьте код на наличие ошибок сборки
  • Убедитесь, что пространство имен ваших Моделей является пространством имен вашего Приложения
...