我已经安装 MvcScaffolding 没有任何问题,但是当我尝试执行脚手架请求时,我收到错误“DbContext.Task.t4”不存在以及其他丢失的文件。我有一个名为 Task 的模型,我认为它指的是它,但我不知道如何修复这个错误?
“脚手架控制器任务 -ModelType 任务 -ControllerName TasksController -DbContextType TasksDbContext”
安装包 MvcScaffolding
- PM> Install-Package 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:在文件夹 ['C:\Development\MVCPLTaskmanager\MvcApplication1\packages\T4Scaffolding.1 .0.2\tools\EFDbContext'] 下找不到模板'DbContext.Task.t4'] 在行:1 char:23 + 参数($c, $a) 返回。<<<< $c @a + CategoryInfo : NotSpecified: (:) [Find-ScaffolderTemplate], 异常 + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.FindScaffolderTemplateCmdlet
Get-ProjectType:找不到与名称“MvcApplication1.Models.TasksDbContext”匹配的类型。尝试指定完全限定的类型名称,包括名称空间 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,但在 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 项目相同。一旦我更改了命名空间,脚手架就起作用了。