我在我的 ASP MVC4 应用程序中使用存储库模式,我认为创建自定义脚手架模板以避免每次生成某些内容时都调整代码会很好。
我遵循了网络上的一些教程。我将 ProgramFiles 中的 CodeTemplates 目录复制到我的项目(仅部分文件),并清除了每个文件的自定义工具属性。
我设法实现了两个目标:
- 覆盖控制器的默认模板:当我转到控制器>添加>控制器并选择“具有读/写操作和视图的控制器......”时,它使用我的模板。
- 添加新的视图模板:当我转到 SomeViewFolder>Add>View 时,我可以在那里选择我的新模板。
我无法实现的是创建一个新模板ControllerWithRepo.tt并能够在 Controller>Add>Controllers 中选择它。即使我创建了ControllerWithRepo.tt,它也不会显示在模板下拉列表中。
我知道可以通过在ControllerWithContext.tt中硬编码来做我想做的事情 ,但这似乎是一个蹩脚的解决方案。我想以正确的方式做到这一点 - 传递存储库类而不是 DbContext 类并按照我想要的方式生成控制器。
现在如果我尝试将我的存储库类作为 dbcontext 它无法执行脚手架。
综上所述,如何为存储库模式创建自己的控制器脚手架模板?