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); +// 註冊 Repository 服務 +builder.Services.AddScoped(); +builder.Services.AddScoped(); + // 配置 Entity Framework 與連線池 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 @@ +嚜簑sing 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 @@ +嚜簑sing 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 @@ +嚜簑sing 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 @@ +嚜簑sing 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(); + } + } +}