找回密码
 立即注册
首页 业界区 业界 不一样的.NET烟火,基于Roslyn的开源代码生成器 ...

不一样的.NET烟火,基于Roslyn的开源代码生成器

榷另辑 2025-9-29 18:20:02
功能介绍

Mud 代码生成器是一个基于Roslyn的源代码生成器,专为.NET开发者设计,用于根据实体类自动生成各种相关的代码,从而显著提升开发效率。它具有以下核心功能:

  • DTO代码生成 - 根据实体类自动生成数据传输对象(DTO)
  • VO代码生成 - 根据实体类自动生成视图对象(VO)
  • 查询输入类生成 - 根据实体类自动生成查询输入类(QueryInput)
  • 创建输入类生成 - 根据实体类自动生成创建输入类(CrInput)
  • 更新输入类生成 - 根据实体类自动生成更新输入类(UpInput)
  • 实体映射方法生成 - 自动生成实体与DTO之间的映射方法
通过这些功能,开发者可以专注于业务逻辑的实现,而无需花费大量时间在重复性的代码编写上。
代码生成项目参数配置

在使用Mud 代码生成器时,可以通过在项目文件中配置以下参数来自定义生成行为:
开源项目

Mud-Code-Generator 源代码
Mud-Code-Generator 帮助文档
通用配置参数
  1. <PropertyGroup>
  2.   <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>  
  3.   <EntitySuffix>Entity</EntitySuffix>  
  4.   <EntityAttachAttributes>SuppressSniffer</EntityAttachAttributes>  
  5. </PropertyGroup>
  6. <ItemGroup>
  7.   <CompilerVisibleProperty Include="EntitySuffix" />
  8.   <CompilerVisibleProperty Include="EntityAttachAttributes" />
  9. </ItemGroup>
复制代码
依赖项配置
  1. <ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>
复制代码
配置参数说明

参数名默认值说明EmitCompilerGeneratedFilesfalse是否在obj目录下保存生成的代码,设为true便于调试EntitySuffixEntity实体类后缀,用于识别实体类EntityAttachAttributes(空)实体类上需要附加的特性,多个特性用逗号分隔代码生成功能及样例

DTO/VO/输入类代码生成

在实体程序项目中添加生成器及配置相关参数:
  1.   true  Entity  SuppressSniffer<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>
复制代码
在实体中添加DtoGenerator特性:
  1. /// /// 客户端信息实体类/// [DtoGenerator][Table(Name = "sys_client"),SuppressSniffer]public partial class SysClientEntity{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// id<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> [property: TableField(Fille = FieldFill.Insert, Value = FillValue.Id)]<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>[property: Column(Name = "id", IsPrimary = true, Position = 1)]<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup>[property: Required(ErrorMessage = "id不能为空")]<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup>private long? _id;<ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup>///<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup> /// 客户端key<ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup>///<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup> [property: Column(Name = "client_key", Position = 3)]<ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup>[property: Required(ErrorMessage = "客户端key不能为空")]<ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup>[property: ExportProperty("客户端key")]<ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup>private string _clientKey;<ItemGroup>
  44.   
  45.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  46. </ItemGroup>///<ItemGroup>
  47.   
  48.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  49. </ItemGroup> /// 删除标志(0代表存在 2代表删除)<ItemGroup>
  50.   
  51.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  52. </ItemGroup>///<ItemGroup>
  53.   
  54.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  55. </ItemGroup> [property: Column(Name = "del_flag", Position = 10)]<ItemGroup>
  56.   
  57.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  58. </ItemGroup>[property: ExportProperty("删除标志")]<ItemGroup>
  59.   
  60.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  61. </ItemGroup>[IgnoreQuery]<ItemGroup>
  62.   
  63.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  64. </ItemGroup>private string _delFlag;}
复制代码
基于以上实体,将自动生成以下几类代码:
实体类属性
  1. /// /// 客户端信息实体类/// public partial class SysClientEntity{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// id<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> [TableField(Fille = FieldFill.Insert, Value = FillValue.Id), Column(Name = "id", IsPrimary = true, Position = 1)]<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>public long? Id<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup>{<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup><ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup>get<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup><ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup>{<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup><ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup><ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup>return _id;<ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup><ItemGroup>
  44.   
  45.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  46. </ItemGroup>}<ItemGroup>
  47.   
  48.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  49. </ItemGroup><ItemGroup>
  50.   
  51.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  52. </ItemGroup>set<ItemGroup>
  53.   
  54.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  55. </ItemGroup><ItemGroup>
  56.   
  57.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  58. </ItemGroup>{<ItemGroup>
  59.   
  60.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  61. </ItemGroup><ItemGroup>
  62.   
  63.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  64. </ItemGroup><ItemGroup>
  65.   
  66.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  67. </ItemGroup>_id = value;<ItemGroup>
  68.   
  69.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  70. </ItemGroup><ItemGroup>
  71.   
  72.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  73. </ItemGroup>}<ItemGroup>
  74.   
  75.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  76. </ItemGroup>}<ItemGroup>
  77.   
  78.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  79. </ItemGroup>///<ItemGroup>
  80.   
  81.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  82. </ItemGroup> /// 客户端key<ItemGroup>
  83.   
  84.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  85. </ItemGroup>///<ItemGroup>
  86.   
  87.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  88. </ItemGroup> [Column(Name = "client_key", Position = 3)]<ItemGroup>
  89.   
  90.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  91. </ItemGroup>public string? ClientKey<ItemGroup>
  92.   
  93.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  94. </ItemGroup>{<ItemGroup>
  95.   
  96.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  97. </ItemGroup><ItemGroup>
  98.   
  99.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  100. </ItemGroup>get<ItemGroup>
  101.   
  102.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  103. </ItemGroup><ItemGroup>
  104.   
  105.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  106. </ItemGroup>{<ItemGroup>
  107.   
  108.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  109. </ItemGroup><ItemGroup>
  110.   
  111.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  112. </ItemGroup><ItemGroup>
  113.   
  114.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  115. </ItemGroup>return _clientKey;<ItemGroup>
  116.   
  117.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  118. </ItemGroup><ItemGroup>
  119.   
  120.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  121. </ItemGroup>}<ItemGroup>
  122.   
  123.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  124. </ItemGroup><ItemGroup>
  125.   
  126.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  127. </ItemGroup>set<ItemGroup>
  128.   
  129.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  130. </ItemGroup><ItemGroup>
  131.   
  132.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  133. </ItemGroup>{<ItemGroup>
  134.   
  135.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  136. </ItemGroup><ItemGroup>
  137.   
  138.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  139. </ItemGroup><ItemGroup>
  140.   
  141.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  142. </ItemGroup>_clientKey = value;<ItemGroup>
  143.   
  144.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  145. </ItemGroup><ItemGroup>
  146.   
  147.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  148. </ItemGroup>}<ItemGroup>
  149.   
  150.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  151. </ItemGroup>}<ItemGroup>
  152.   
  153.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  154. </ItemGroup>///<ItemGroup>
  155.   
  156.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  157. </ItemGroup> /// 删除标志(0代表存在 2代表删除)<ItemGroup>
  158.   
  159.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  160. </ItemGroup>///<ItemGroup>
  161.   
  162.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  163. </ItemGroup> [Column(Name = "del_flag", Position = 10)]<ItemGroup>
  164.   
  165.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  166. </ItemGroup>public string? DelFlag<ItemGroup>
  167.   
  168.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  169. </ItemGroup>{<ItemGroup>
  170.   
  171.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  172. </ItemGroup><ItemGroup>
  173.   
  174.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  175. </ItemGroup>get<ItemGroup>
  176.   
  177.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  178. </ItemGroup><ItemGroup>
  179.   
  180.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  181. </ItemGroup>{<ItemGroup>
  182.   
  183.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  184. </ItemGroup><ItemGroup>
  185.   
  186.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  187. </ItemGroup><ItemGroup>
  188.   
  189.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  190. </ItemGroup>return _delFlag;<ItemGroup>
  191.   
  192.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  193. </ItemGroup><ItemGroup>
  194.   
  195.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  196. </ItemGroup>}<ItemGroup>
  197.   
  198.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  199. </ItemGroup><ItemGroup>
  200.   
  201.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  202. </ItemGroup>set<ItemGroup>
  203.   
  204.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  205. </ItemGroup><ItemGroup>
  206.   
  207.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  208. </ItemGroup>{<ItemGroup>
  209.   
  210.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  211. </ItemGroup><ItemGroup>
  212.   
  213.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  214. </ItemGroup><ItemGroup>
  215.   
  216.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  217. </ItemGroup>_delFlag = value;<ItemGroup>
  218.   
  219.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  220. </ItemGroup><ItemGroup>
  221.   
  222.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  223. </ItemGroup>}<ItemGroup>
  224.   
  225.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  226. </ItemGroup>}<ItemGroup>
  227.   
  228.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  229. </ItemGroup>///<ItemGroup>
  230.   
  231.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  232. </ItemGroup> /// 通用的实体映射至VO对象方法。<ItemGroup>
  233.   
  234.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  235. </ItemGroup>///<ItemGroup>
  236.   
  237.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  238. </ItemGroup> public virtual SysClientListOutput MapTo()<ItemGroup>
  239.   
  240.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  241. </ItemGroup>{<ItemGroup>
  242.   
  243.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  244. </ItemGroup><ItemGroup>
  245.   
  246.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  247. </ItemGroup>var voObj = new SysClientListOutput();<ItemGroup>
  248.   
  249.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  250. </ItemGroup><ItemGroup>
  251.   
  252.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  253. </ItemGroup>voObj.id = this.Id;<ItemGroup>
  254.   
  255.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  256. </ItemGroup><ItemGroup>
  257.   
  258.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  259. </ItemGroup>voObj.clientKey = this.ClientKey;<ItemGroup>
  260.   
  261.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  262. </ItemGroup><ItemGroup>
  263.   
  264.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  265. </ItemGroup>voObj.delFlag = this.DelFlag;<ItemGroup>
  266.   
  267.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  268. </ItemGroup><ItemGroup>
  269.   
  270.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  271. </ItemGroup>return voObj;<ItemGroup>
  272.   
  273.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  274. </ItemGroup>}}
复制代码
VO类 (视图对象)
  1. /// /// 客户端信息实体类/// [SuppressSniffer, CompilerGenerated]public partial class SysClientListOutput{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// id<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> public long? id { get; set; }<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>///<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup> /// 客户端key<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup>///<ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup> [ExportProperty("客户端key")]<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup>public string? clientKey { get; set; }<ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup>///<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup> /// 删除标志(0代表存在 2代表删除)<ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup>///<ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup> [ExportProperty("删除标志")]<ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup>public string? delFlag { get; set; }}
复制代码
QueryInput类 (查询输入对象)
  1. // SysClientQueryInput.g.cs/// /// 客户端信息实体类/// [SuppressSniffer, CompilerGenerated]public partial class SysClientQueryInput : DataQueryInput{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// id<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> public long? id { get; set; }<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>///<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup> /// 客户端key<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup>///<ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup> public string? clientKey { get; set; }<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup>///<ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup> /// 删除标志(0代表存在 2代表删除)<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup>///<ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup> public string? delFlag { get; set; }<ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup>///<ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup> /// 构建通用的查询条件。<ItemGroup>
  44.   
  45.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  46. </ItemGroup>///<ItemGroup>
  47.   
  48.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  49. </ItemGroup> public Expression BuildQueryWhere()<ItemGroup>
  50.   
  51.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  52. </ItemGroup>{<ItemGroup>
  53.   
  54.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  55. </ItemGroup><ItemGroup>
  56.   
  57.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  58. </ItemGroup>var where = LinqExtensions.True();<ItemGroup>
  59.   
  60.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  61. </ItemGroup><ItemGroup>
  62.   
  63.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  64. </ItemGroup>where = where.AndIF(this.id != null, x => x.Id == this.id);<ItemGroup>
  65.   
  66.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  67. </ItemGroup><ItemGroup>
  68.   
  69.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  70. </ItemGroup>where = where.AndIF(!string.IsNullOrEmpty(this.clientKey), x => x.ClientKey == this.clientKey);<ItemGroup>
  71.   
  72.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  73. </ItemGroup><ItemGroup>
  74.   
  75.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  76. </ItemGroup>where = where.AndIF(!string.IsNullOrEmpty(this.delFlag), x => x.DelFlag == this.delFlag);<ItemGroup>
  77.   
  78.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  79. </ItemGroup><ItemGroup>
  80.   
  81.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  82. </ItemGroup>return where;<ItemGroup>
  83.   
  84.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  85. </ItemGroup>}}
复制代码
CrInput类 (创建输入对象)
  1. // SysClientCrInput.g.cs/// /// 客户端信息实体类/// [SuppressSniffer, CompilerGenerated]public partial class SysClientCrInput{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// 客户端key<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> [Required(ErrorMessage = "客户端key不能为空")]<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>public string? clientKey { get; set; }<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup>///<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup> /// 删除标志(0代表存在 2代表删除)<ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup>///<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup> public string? delFlag { get; set; }<ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup>///<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup> /// 通用的BO对象映射至实体方法。<ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup>///<ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup> public virtual SysClientEntity MapTo()<ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup>{<ItemGroup>
  44.   
  45.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  46. </ItemGroup><ItemGroup>
  47.   
  48.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  49. </ItemGroup>var entity = new SysClientEntity();<ItemGroup>
  50.   
  51.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  52. </ItemGroup><ItemGroup>
  53.   
  54.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  55. </ItemGroup>entity.ClientKey = this.clientKey;<ItemGroup>
  56.   
  57.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  58. </ItemGroup><ItemGroup>
  59.   
  60.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  61. </ItemGroup>entity.DelFlag = this.delFlag;<ItemGroup>
  62.   
  63.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  64. </ItemGroup><ItemGroup>
  65.   
  66.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  67. </ItemGroup>return entity;<ItemGroup>
  68.   
  69.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  70. </ItemGroup>}}
复制代码
UpInput类 (更新输入对象)
  1. /// /// 客户端信息实体类/// [SuppressSniffer, CompilerGenerated]public partial class SysClientUpInput : SysClientCrInput{<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>///<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup> /// id<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>///<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup> [Required(ErrorMessage = "id不能为空")]<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>public long? id { get; set; }<ItemGroup>
  17.   
  18.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  19. </ItemGroup>///<ItemGroup>
  20.   
  21.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  22. </ItemGroup> /// 通用的BO对象映射至实体方法。<ItemGroup>
  23.   
  24.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  25. </ItemGroup>///<ItemGroup>
  26.   
  27.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  28. </ItemGroup> public override SysClientEntity MapTo()<ItemGroup>
  29.   
  30.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  31. </ItemGroup>{<ItemGroup>
  32.   
  33.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  34. </ItemGroup><ItemGroup>
  35.   
  36.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  37. </ItemGroup>var entity = base.MapTo();<ItemGroup>
  38.   
  39.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  40. </ItemGroup><ItemGroup>
  41.   
  42.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  43. </ItemGroup>entity.Id = this.id;<ItemGroup>
  44.   
  45.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  46. </ItemGroup><ItemGroup>
  47.   
  48.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  49. </ItemGroup>return entity;<ItemGroup>
  50.   
  51.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  52. </ItemGroup>}}
复制代码
特性控制参数

DtoGenerator特性支持以下参数控制代码生成行为:
参数名类型默认值说明GenMapMethodbooltrue是否生成实体映射方法GenVoClassbooltrue是否生成VO类GenQueryInputClassbooltrue是否生成查询输入类GenBoClassbooltrue是否生成BO类DtoNamespacestring"Dto"DTO类命名空间使用示例:
  1. [DtoGenerator(<ItemGroup>
  2.   
  3.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  4. </ItemGroup>GenMapMethod = true,<ItemGroup>
  5.   
  6.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  7. </ItemGroup>GenVoClass = true,<ItemGroup>
  8.   
  9.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  10. </ItemGroup>GenQueryInputClass = false,<ItemGroup>
  11.   
  12.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  13. </ItemGroup>DtoNamespace = "ViewModels")]public class SysClientEntity : BaseEntity{<ItemGroup>
  14.   
  15.   <PackageReference Include="Mud.EntityCodeGenerator" Version="1.1.5" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  16. </ItemGroup>// 属性定义}
复制代码
与传统代码生成器的比较

相较于传统的代码生成器(如CodeSmith)和低代码平台的代码生成器,Mud 代码生成器有着独特的优势:
零散添加字段不需要整体重新生成实体

传统的代码生成器通常需要在模型变更时重新生成整个文件,这可能导致已有的自定义代码丢失或者需要手动合并。而Mud代码生成器采用增量式生成方式,在添加新字段时只需重新编译项目即可自动更新相关代码,无需重新生成整个实体。
零散添加字段不需要手动添加至其它DTO

当实体新增字段时,传统代码生成器往往需要手动将新字段添加到各个相关的DTO中,容易遗漏且繁琐。Mud 代码生成器会在编译时自动检测实体变化并同步更新所有相关的DTO、VO以及各种输入类,保证代码的一致性。
代码整洁,关注核心字段

Mud 代码生成器遵循"关注点分离"原则,将生成的代码与手写的业务逻辑完全隔离。开发者只需要关注核心业务字段的定义,其他辅助代码会自动生成,使代码更加整洁易维护。
实时生成

代码在编译时自动生成,无需额外的操作步骤。开发者只需关注业务逻辑代码的编写,当修改实体类并重新编译时,所有相关的DTO、VO和输入类都会自动更新,大大提升了开发效率。
强类型安全

基于Roslyn编译器平台,提供强类型的代码生成和验证。生成的代码与项目中的其他代码一样,都经过编译器的严格检查,避免了运行时错误,提高了代码质量和可靠性.
高度可定制

支持多种配置选项,可以根据项目需求灵活调整生成规则。开发者可以通过项目配置文件控制生成行为,如实体类后缀、需要附加的特性等,满足不同项目的个性化需求。
无缝集成

作为.NET项目的一部分,与现有开发流程完美融合。无需额外的工具或复杂的配置,只需添加NuGet包引用并在项目中进行简单配置,即可享受代码自动生成带来的便利。
版本控制友好

生成的代码不会污染版本历史,便于团队协作。由于代码是在编译时生成的,不会产生大量人工编写的重复代码,使得版本控制系统中的变更记录更加清晰,更容易进行代码审查和团队协作。
使用方法


  • 在您的项目中添加对 Mud.EntityCodeGenerator 包的引用
  • 根据需要配置项目参数,如实体后缀、特性等
  • 将实体类标记为 partial 并添加 [DtoGenerator] 特性
  • 定义实体字段,使用适当的特性进行标注
  • 编译项目,代码生成器将自动生成相关代码
  • 在业务代码中使用生成的DTO、VO等类
通过以上步骤,您可以轻松地使用Mud代码生成器来提升开发效率,减少重复劳动,让团队更专注于业务逻辑的实现。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册