提问人:blackcomb 提问时间:5/5/2023 最后编辑:blackcomb 更新时间:5/10/2023 访问量:231
如何调试自定义 Entity Framework Core T4 模板
How to debug custom Entity Framework Core T4 templates
问:
我按照以下文档操作,了解如何使用自定义 T4 模板从具有 EF Core 的数据库生成代码: https://learn.microsoft.com/en-us/ef/core/managing-schemas/scaffolding/templates
现在,当我修改模板时,调试 T4 文件中错误的最佳方法是什么?
如果我执行脚手架命令并且 EntityType.t4 文档中有任何错误,我只收到一个非常通用的错误消息:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.EntityFrameworkCore.Scaffolding.Internal.TextTemplatingModelGenerator.GenerateModel(IModel model, ModelCodeGenerationOptions options)
这是我在 Visual Studio 包管理器控制台中使用的基架命令:Scaffold-DbContext "Data Source=..." Microsoft.EntityFrameworkCore.SqlServer -UseDatabaseNames -Context SqlServerContext -StartupProject <...> -ContextDir Context -OutputDir Model -Tables <...>
更新:我收到一条有用的消息,说明DbContext.t4文件中的错误,但只有上面提到的EntityType.t4中的错误的一般错误。
答:
2赞
bricelam
5/6/2023
#1
调试模板的最简单方法是在模板运行时使用实时调试器。
<#@ template debug="true" #>
<#
System.Diagnostics.Debugger.Launch();
#>
附加调试器后,应该能够向模板代码添加断点、计算局部变量等。
该部件告诉 T4 保留更多信息,以获得更好的调试体验。debug="true"
评论