From 797e6b5f3c994339e2ea8ff993ce484916d0b764 Mon Sep 17 00:00:00 2001 From: Chunyi Date: Tue, 30 Sep 2025 14:07:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20AutoMapper=20=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E9=85=8D=E7=BD=AE=E5=8F=8A=20DTO=20=E9=A1=9E=E5=88=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 `AutoMappingProfile.cs` 中新增了 AutoMapper 的映射配置,定義了 `DepartmentEntity` 到 `DepartmentDto` 以及 `RoleEntity` 到 `RoleDto` 的映射關係。 在 `DepartmentDto.cs` 和 `RoleDto.cs` 中分別新增了 `DepartmentDto` 和 `RoleDto` 類別,並提供了相應的 XML 註解。 最後,在 `Program.cs` 中新增了 AutoMapper 的服務註冊,將 `AutoMappingProfile` 類別的映射配置加入到服務容器中。 --- .../Configurations/AutoMappingProfile.cs | 21 +++++++++++++++++++ .../Models/DTOs/DepartmentDto.cs | 18 ++++++++++++++++ .../Models/DTOs/RoleDto.cs | 18 ++++++++++++++++ XisongSpaceBooking_BackEnd/Program.cs | 5 +++++ 4 files changed, 62 insertions(+) create mode 100644 XisongSpaceBooking_BackEnd/Configurations/AutoMappingProfile.cs create mode 100644 XisongSpaceBooking_BackEnd/Models/DTOs/DepartmentDto.cs create mode 100644 XisongSpaceBooking_BackEnd/Models/DTOs/RoleDto.cs diff --git a/XisongSpaceBooking_BackEnd/Configurations/AutoMappingProfile.cs b/XisongSpaceBooking_BackEnd/Configurations/AutoMappingProfile.cs new file mode 100644 index 0000000..5908e74 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Configurations/AutoMappingProfile.cs @@ -0,0 +1,21 @@ +using AutoMapper; +using Models.Entities; +using XisongSpaceBooking_BackEnd.Models.DTOs; + +namespace XisongSpaceBooking_BackEnd.Configurations +{ + /// + /// AutoMapper 映射配置檔案 + /// + public class AutoMappingProfile : Profile + { + public AutoMappingProfile() + { + // Department Entity 到 DTO 的映射 + CreateMap(); + + // Role Entity 到 DTO 的映射 + CreateMap(); + } + } +} diff --git a/XisongSpaceBooking_BackEnd/Models/DTOs/DepartmentDto.cs b/XisongSpaceBooking_BackEnd/Models/DTOs/DepartmentDto.cs new file mode 100644 index 0000000..0b6aec0 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/DTOs/DepartmentDto.cs @@ -0,0 +1,18 @@ +namespace XisongSpaceBooking_BackEnd.Models.DTOs +{ + /// + /// 處室資料傳輸物件 + /// + public class DepartmentDto + { + /// + /// 處室 ID(主鍵) + /// + public int DepartmentId { get; set; } + + /// + /// 處室名稱 + /// + public string DepartmentName { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Models/DTOs/RoleDto.cs b/XisongSpaceBooking_BackEnd/Models/DTOs/RoleDto.cs new file mode 100644 index 0000000..2f5bcef --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Models/DTOs/RoleDto.cs @@ -0,0 +1,18 @@ +namespace XisongSpaceBooking_BackEnd.Models.DTOs +{ + /// + /// 身份資料傳輸物件 + /// + public class RoleDto + { + /// + /// 身份 ID(主鍵) + /// + public int RoleId { get; set; } + + /// + /// 身份名稱 + /// + public string RoleName { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Program.cs b/XisongSpaceBooking_BackEnd/Program.cs index 93650b9..894213e 100644 --- a/XisongSpaceBooking_BackEnd/Program.cs +++ b/XisongSpaceBooking_BackEnd/Program.cs @@ -7,6 +7,11 @@ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); +// U AutoMapper A +builder.Services.AddAutoMapper(cfg => +{ +}, typeof(AutoMappingProfile).Assembly); + // tm Entity Framework Psu builder.Services.AddDbContextPool(options => {