From 9090c6a1b7711fdf9591bf6c7556d4ae2af6eea6 Mon Sep 17 00:00:00 2001 From: Chunyi Date: Tue, 30 Sep 2025 14:19:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20Role=20=E8=88=87=20Departm?= =?UTF-8?q?ent=20=E8=B3=87=E6=96=99=E5=AD=98=E5=8F=96=E4=BB=8B=E9=9D=A2?= =?UTF-8?q?=E5=8F=8A=E5=AF=A6=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 `Program.cs` 中,新增對 `IRoleRepository` 和 `IDepartmentRepository` 的依賴注入。 實作 `IDepartmentRepository` 和 `IRoleRepository` 介面,並提供 `GetAllAsync` 方法以非同步取得所有處室及身份資料。 相關命名空間也已引入以支援這些變更。 --- XisongSpaceBooking_BackEnd/Program.cs | 5 +++ .../Repositories/DepartmentRepository.cs | 34 +++++++++++++++++++ .../Repositories/IDepartmentRepository.cs | 16 +++++++++ .../Repositories/IRoleRepository.cs | 16 +++++++++ .../Repositories/RoleRepository.cs | 34 +++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 XisongSpaceBooking_BackEnd/Repositories/DepartmentRepository.cs create mode 100644 XisongSpaceBooking_BackEnd/Repositories/IDepartmentRepository.cs create mode 100644 XisongSpaceBooking_BackEnd/Repositories/IRoleRepository.cs create mode 100644 XisongSpaceBooking_BackEnd/Repositories/RoleRepository.cs diff --git a/XisongSpaceBooking_BackEnd/Program.cs b/XisongSpaceBooking_BackEnd/Program.cs index 894213e..b2d3eca 100644 --- a/XisongSpaceBooking_BackEnd/Program.cs +++ b/XisongSpaceBooking_BackEnd/Program.cs @@ -1,6 +1,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; using XisongSpaceBooking_BackEnd.Configurations; +using XisongSpaceBooking_BackEnd.Repositories; var builder = WebApplication.CreateBuilder(args); @@ -12,6 +13,10 @@ builder.Services.AddAutoMapper(cfg => { }, typeof(AutoMappingProfile).Assembly); +// U Repository A +builder.Services.AddScoped(); +builder.Services.AddScoped(); + // tm Entity Framework Psu builder.Services.AddDbContextPool(options => { diff --git a/XisongSpaceBooking_BackEnd/Repositories/DepartmentRepository.cs b/XisongSpaceBooking_BackEnd/Repositories/DepartmentRepository.cs new file mode 100644 index 0000000..7abe887 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Repositories/DepartmentRepository.cs @@ -0,0 +1,34 @@ +using Microsoft.EntityFrameworkCore; +using Models.Entities; +using XisongSpaceBooking_BackEnd.Configurations; + +namespace XisongSpaceBooking_BackEnd.Repositories +{ + /// + /// 處室資料存取實作 + /// + public class DepartmentRepository : IDepartmentRepository + { + private readonly SpaceBookingDbContext _context; + + /// + /// 建構函式 + /// + /// 資料庫內容 + public DepartmentRepository(SpaceBookingDbContext context) + { + _context = context; + } + + /// + /// 取得所有處室資料 + /// + /// 所有處室資料的集合 + public async Task> GetAllAsync() + { + return await _context.Departments + .AsNoTracking() + .ToListAsync(); + } + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Repositories/IDepartmentRepository.cs b/XisongSpaceBooking_BackEnd/Repositories/IDepartmentRepository.cs new file mode 100644 index 0000000..5b03e1f --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Repositories/IDepartmentRepository.cs @@ -0,0 +1,16 @@ +using Models.Entities; + +namespace XisongSpaceBooking_BackEnd.Repositories +{ + /// + /// 處室資料存取介面 + /// + public interface IDepartmentRepository + { + /// + /// 取得所有處室資料 + /// + /// 所有處室資料的集合 + Task> GetAllAsync(); + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Repositories/IRoleRepository.cs b/XisongSpaceBooking_BackEnd/Repositories/IRoleRepository.cs new file mode 100644 index 0000000..55a2cca --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Repositories/IRoleRepository.cs @@ -0,0 +1,16 @@ +using Models.Entities; + +namespace XisongSpaceBooking_BackEnd.Repositories +{ + /// + /// 身份資料存取介面 + /// + public interface IRoleRepository + { + /// + /// 取得所有身份資料 + /// + /// 所有身份資料的集合 + Task> GetAllAsync(); + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Repositories/RoleRepository.cs b/XisongSpaceBooking_BackEnd/Repositories/RoleRepository.cs new file mode 100644 index 0000000..2590d73 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Repositories/RoleRepository.cs @@ -0,0 +1,34 @@ +using Microsoft.EntityFrameworkCore; +using Models.Entities; +using XisongSpaceBooking_BackEnd.Configurations; + +namespace XisongSpaceBooking_BackEnd.Repositories +{ + /// + /// 身份資料存取實作 + /// + public class RoleRepository : IRoleRepository + { + private readonly SpaceBookingDbContext _context; + + /// + /// 建構函式 + /// + /// 資料庫內容 + public RoleRepository(SpaceBookingDbContext context) + { + _context = context; + } + + /// + /// 取得所有身份資料 + /// + /// 所有身份資料的集合 + public async Task> GetAllAsync() + { + return await _context.Roles + .AsNoTracking() + .ToListAsync(); + } + } +}