一、Nuget安装AutoMapper、AutoMapper.Extensions.Microsoft.DependencyInjection

微信截图_20211004143816.png

二、添加两个实体,分别为DTO类【SubmitDeviceNumberingDto】和实体类【DeviceArchives】

  1. using System.ComponentModel.DataAnnotations;
  2. namespace Rili.DeviceArchive.Service.DeviceNumbering.Dto
  3. {
  4. public class SubmitDeviceNumberingDto
  5. {
  6. /// <summary>
  7. /// 项目编号
  8. /// </summary>
  9. public string ItemNo { get; set; }
  10. /// <summary>
  11. /// 部件
  12. /// </summary>
  13. [Required(ErrorMessage = "部件不得为空")]
  14. public string Component { get; set; }
  15. /// <summary>
  16. /// 器件类别
  17. /// </summary>
  18. [Required(ErrorMessage = "器件类别不得为空")]
  19. public string DeviceType { get; set; }
  20. /// <summary>
  21. /// 图号
  22. /// </summary>
  23. [Required(ErrorMessage = "图号不得为空")]
  24. public string DrawingNo { get; set; }
  25. /// <summary>
  26. /// 作业
  27. /// </summary>
  28. [Required(ErrorMessage = "作业不得为空")]
  29. public string Job { get; set; }
  30. /// <summary>
  31. /// 器件名称
  32. /// </summary>
  33. [Required(ErrorMessage = "器件名称不得为空")]
  34. public string Name { get; set; }
  35. /// <summary>
  36. /// 规格
  37. /// </summary>
  38. [Required(ErrorMessage = "规格不得为空")]
  39. public string Specifications { get; set; }
  40. /// <summary>
  41. /// 代换图号-作业
  42. /// </summary>
  43. [Required(ErrorMessage = "代换图号-作业不得为空")]
  44. public string ChangeJob { get; set; }
  45. /// <summary>
  46. /// 分类(A类、B类、C类)
  47. /// </summary>
  48. [Required(ErrorMessage = "分类不得为空")]
  49. public string Classify { get; set; }
  50. /// <summary>
  51. /// 项目负责人
  52. /// </summary>
  53. [Required(ErrorMessage = "项目负责人不得为空")]
  54. public string ProjectLeader { get; set; }
  55. /// <summary>
  56. /// 生产厂家或供应商
  57. /// </summary>
  58. [Required(ErrorMessage = "生产厂家或供应商不得为空")]
  59. public string Supplier { get; set; }
  60. /// <summary>
  61. /// 取号备注
  62. /// </summary>
  63. public string NumberingRemarks { get; set; }
  64. }
  65. }
  1. using System;
  2. namespace Rili.DeviceArchive.Data.Model
  3. {
  4. public class DeviceArchives
  5. {
  6. /// <summary>
  7. /// 主键Id
  8. /// </summary>
  9. public long Id { get; set; }
  10. /// <summary>
  11. /// 器件号
  12. /// </summary>
  13. public string DeviceNo { get; set; }
  14. /// <summary>
  15. /// 项目编号
  16. /// </summary>
  17. public string ItemNo { get; set; }
  18. /// <summary>
  19. /// 部件名称
  20. /// </summary>
  21. public string Component { get; set; }
  22. /// <summary>
  23. /// 器件类别
  24. /// </summary>
  25. public string DeviceType { get; set; }
  26. /// <summary>
  27. /// 图号
  28. /// </summary>
  29. public string DrawingNo { get; set; }
  30. /// <summary>
  31. /// 作业
  32. /// </summary>
  33. public string Job { get; set; }
  34. /// <summary>
  35. /// 名称
  36. /// </summary>
  37. public string Name { get; set; }
  38. /// <summary>
  39. /// 规格
  40. /// </summary>
  41. public string Specifications { get; set; }
  42. /// <summary>
  43. /// 代换图号-作业
  44. /// </summary>
  45. public string ChangeJob { get; set; }
  46. /// <summary>
  47. /// 分类
  48. /// </summary>
  49. public string Classify { get; set; }
  50. /// <summary>
  51. /// 项目负责人
  52. /// </summary>
  53. public string ProjectLeader { get; set; }
  54. /// <summary>
  55. /// 生产厂家或供应商
  56. /// </summary>
  57. public string Supplier { get; set; }
  58. /// <summary>
  59. /// 元器件可行性报告
  60. /// </summary>
  61. public string FeasibilityReport { get; set; }
  62. /// <summary>
  63. /// 技术与试制协议
  64. /// </summary>
  65. public string TechnicalAgreement { get; set; }
  66. /// <summary>
  67. /// 技术条件
  68. /// </summary>
  69. public string TechnicalConditions { get; set; }
  70. /// <summary>
  71. /// 整机或工业运行试验
  72. /// </summary>
  73. public string OperationTest { get; set; }
  74. /// <summary>
  75. /// 零部件质量鉴定委托报告
  76. /// </summary>
  77. public string CommissionReport { get; set; }
  78. /// <summary>
  79. /// 器件使用通知
  80. /// </summary>
  81. public string UseNotification { get; set; }
  82. /// <summary>
  83. /// 供应商评审及认可记录
  84. /// </summary>
  85. public string ReviewRecords { get; set; }
  86. /// <summary>
  87. /// 认定书
  88. /// </summary>
  89. public string LetterofVerification { get; set; }
  90. /// <summary>
  91. /// 器件完成情况(应用、取消)
  92. /// </summary>
  93. public string CompletionStatus { get; set; }
  94. /// <summary>
  95. /// 其它资料
  96. /// </summary>
  97. public string OtherInformation { get; set; }
  98. /// <summary>
  99. /// 器件档案备注
  100. /// </summary>
  101. public string DeviceRemarks { get; set; }
  102. /// <summary>
  103. /// 状态(取号、归档、作废、移交)
  104. /// </summary>
  105. public int? Status { get; set; }
  106. /// <summary>
  107. /// 移交人
  108. /// </summary>
  109. public string Transferor { get; set; }
  110. /// <summary>
  111. /// 移交日期
  112. /// </summary>
  113. public DateTime? TransferDate { get; set; }
  114. }
  115. }

三、配置 DTO 和实体映射类

  1. using AutoMapper;
  2. using Rili.DeviceArchive.Data.Model;
  3. using Rili.DeviceArchive.Service.DeviceNumbering.Dto;
  4. namespace Rili.DeviceArchive.Service
  5. {
  6. public class MapProfile:Profile
  7. {
  8. public MapProfile()
  9. {
  10. CreateMap<SubmitDeviceNumberingDto, DeviceArchives>();
  11. }
  12. }
  13. }

四、Startup.cs中注入服务

  1. services.AddAutoMapper(typeof(MapProfile));

五、调用

微信截图_20211004145204.png
微信截图_20211004145234.png