运行脚手架控制器时MVC 3脚手架错误

时间:2011-08-19 13:31:14

标签: asp.net-mvc asp.net-mvc-3 nuget scaffolding scaffold

我已经安装了MvcScaffolding而没有任何问题但是当我尝试执行脚手架请求时,我得到错误“DbContext.Task.t4”不存在以及缺少的其他文件。我有一个名为Task的模型,我认为它指的是但我对如何解决这个错误感到茫然?

  

“脚手架控制器任务-ModelType任务-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。

错误

  • PM>脚手架控制器任务-ModelType任务-ControllerName TasksController -DbContextType TasksDbContext

脚手架TasksController ...

Find-ScaffolderTemplate:在文件夹['C:\ Development \ MVCPLTaskmanager \ MvcApplication1 \ packages \ T4Scaffolding.1'下找不到模板'DbContext.Task.t4' .0.2 \工具\ EFDbContext'] 在行:1 char:23 + param($ c,$ a)返回。 <<<< $ c @a     + CategoryInfo:NotSpecified:(:) [Find-ScaffolderTemplate],Exception     + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.FindScaffolderTemplateCmdlet

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     + CategoryInfo:NotSpecified:(:) [Get-ProjectType],InvalidOperationException     + FullyQualifiedErrorId:T4Scaffolding.Cmdlets.GetProjectTypeCmdlet

Invoke-Scaffolder:创建了数据库上下文TasksDbContext,但无法将其作为项目项找到 在C:\ Development \ MVCPLTaskmanager \ MvcApplication1 \ packages \ MvcScaffolding.1.0.2 \ tools \ Controller \ MvcScaffolding.Controller.ps1:71 char:40 + $ 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

ANSWER 事实证明,我的模型的命名空间需要与MVC项目相同。一旦我更改了命名空间,脚手架就可以工作。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但这是因为模型类中存在错误,导致它们无法构建。因此,没有模型与我给脚手架的名称相匹配,结论是我没有使用正确的命名空间。

因此...

  • 检查代码是否存在构建错误
  • 确保模型的命名空间是应用程序的命名空间