如何使用 CodegenCS 从代码优先实体类生成视图模型?

问题描述 投票:0回答:1

我有一组用于代码优先方法的实体类。是否可以使用 CodegenCS 从这些类定义生成视图模型?我发现很难找出一种方法来引用 CodegenCS 模板中的实体类以生成其视图模型对应项,更不用说最好的方法了。我发现不可能(希望实际上不是)引用其他类,除非它们是在模板文件本身中定义的。

我希望仅使用一个模板来生成多个输出,因为为每个实体定义一个模板来生成其视图模型对我来说感觉像是多余的工作,我也可以手动创建它们。更远;如果使用 CodegenCS 可以实现上述目标,那么我除了生成视图模型之外还有更大的想法。

提前致谢!

TECH:我正在使用 Visual Studio 2022 和 .NET 7.0 的 CodegenCS 扩展(附录:正在使用的项目是一个类库)。

注意:我已经能够使用 T4 模板完成上述任务以及更多任务,但考虑到使用 T4 模板通过一个模板生成多个输出的复杂性和尴尬性,我正在寻找一种更简单的方法来管理这样做。我希望 CodegenCS 能够成为简化我未来项目的代码生成/脚手架的途径。

.net-core visual-studio-2022 code-generation code-first codegencs
1个回答
1
投票

我是 CodegenCS 的作者,但我主要基于数据库模式或 Swagger 定义来使用它。

您所描述的(基于类生成)可以通过两种方式完成:

  • 构建您的 POCO,然后创建一个 CodegenCS,它将使用反射读取 DLL 并生成您需要的内容
  • 使用 Roslyn 源生成器,它可以让您(在构建期间)迭代 POCO 并通过生成新文件来“增强”项目

检查这两个链接: https://github.com/CodegenCS/CodegenCS/blob/master/docs/Comparison-Roslyn.md https://github.com/CodegenCS/Samples/tree/main/src/SampleSourceGenerator.SimplePocos

如果您需要更多帮助,请随时在 GitHub 中提出问题。

© www.soinside.com 2019 - 2024. All rights reserved.