【问题标题】:How do you generate service and other classes with T4 templates in EF Core?如何在 EF Core 中使用 T4 模板生成服务和其他类?
【发布时间】:2021-08-24 18:56:11
【问题描述】:
多年来,我一直在使用 EDMX 文件的 .Net 应用程序中使用实体框架。我能够创建可以读取 EDMX 文件并在 MVC Web 应用程序中生成服务类甚至控制器/视图的 T4 模板。我是 .Net Core 的新手(尝试使用 .Net 5.0),我试图弄清楚如何使用 EF Core 做类似的事情。理想情况下,我会在一个单独的服务项目中拥有一个 T4 模板,该模板可以读取数据项目并吐出服务类。这可能吗?
【问题讨论】:
标签:
.net-core
entity-framework-core
【解决方案1】:
这是可能的。您可以使用程序集指令在模板中导入数据项目/程序集:
<#@ assembly name="$(SolutionDir)YourProject\bin\Debug\YourSolution.DataProject.dll" #>
缺点是,如果您在数据项目中将类声明为internal,那么将它们暴露给 T4 文件会非常棘手。