Ошибка Scaffold MVC 3 при запуске контроллера Scaffold

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

«Задача контроллера лесов - Задача ModelType - Имя_контроллера TasksController - DbContextType TasksDbContext»

Установка пакетов MvcScaffolding

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

Ошибка

  • PM> Scaffold Controller Task -ModelType Task -ControllerName TasksController -DbContextType TasksDbContext

Контроллер задач строительных лесов...

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

Get-ProjectType: не удается найти тип, соответствующий имени «MvcApplication1.Models.TasksDbContext». Попробуйте указать полное имя типа, включая namesp ace. В 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

Invoke-Scaffolder: Создан контекст базы данных TasksDbContext, но не удалось найти его как элемент проекта. + $dbContextScaffolderResult = Scaffold ‹‹‹‹ DbContext -ModelType $foundModelType.FullName -DbContextType $DbContextType -Area $Area -Project $Projec t -CodeLanguage $CodeLanguage -BlockUi + CategoryInfo : NotSpecified: (:) [Invoke-Scaffolder], RuntimeException + FullyQualifiedErrorId: T4Scaffolding.Cmdlets.InvokeScaffolderCmdlet

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


person Zaffiro    schedule 19.08.2011    source источник
comment
Можете ли вы добавить ответ, который у вас есть, в качестве ответа ниже и принять его? Этот вопрос помечен как оставшийся без ответа в результатах поиска.   -  person Chris Moschini    schedule 18.04.2013


Ответы (1)


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

So...

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