From 532890674ed0c6b2089c978c0715a1b74f0e0c1c Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 27 Jun 2024 17:05:22 -0400 Subject: [PATCH] eager load Page associated to PageModule --- .../Repository/PageModuleRepository.cs | 20 ++++++++++++++----- Oqtane.Shared/Models/PageModule.cs | 6 +++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Oqtane.Server/Repository/PageModuleRepository.cs b/Oqtane.Server/Repository/PageModuleRepository.cs index bc24ffa8..a6f81b69 100644 --- a/Oqtane.Server/Repository/PageModuleRepository.cs +++ b/Oqtane.Server/Repository/PageModuleRepository.cs @@ -29,7 +29,8 @@ namespace Oqtane.Repository { using var db = _dbContextFactory.CreateDbContext(); var pagemodules = db.PageModule - .Include(item => item.Module) // eager load modules + .Include(item => item.Module) // eager load module + .Include(item => item.Page) // eager load page .Where(item => item.Module.SiteId == siteId).ToList(); if (pagemodules.Any()) { @@ -70,12 +71,16 @@ namespace Oqtane.Repository PageModule pagemodule; if (tracking) { - pagemodule = db.PageModule.Include(item => item.Module) // eager load modules + pagemodule = db.PageModule + .Include(item => item.Module) // eager load module + .Include(item => item.Page) // eager load page .FirstOrDefault(item => item.PageModuleId == pageModuleId); } else { - pagemodule = db.PageModule.AsNoTracking().Include(item => item.Module) // eager load modules + pagemodule = db.PageModule.AsNoTracking() + .Include(item => item.Module) // eager load module + .Include(item => item.Page) // eager load page .FirstOrDefault(item => item.PageModuleId == pageModuleId); } if (pagemodule != null) @@ -90,7 +95,9 @@ namespace Oqtane.Repository public PageModule GetPageModule(int pageId, int moduleId) { using var db = _dbContextFactory.CreateDbContext(); - var pagemodule = db.PageModule.Include(item => item.Module) // eager load modules + var pagemodule = db.PageModule + .Include(item => item.Module) // eager load module + .Include(item => item.Page) // eager load page .SingleOrDefault(item => item.PageId == pageId && item.ModuleId == moduleId); if (pagemodule != null) { @@ -104,7 +111,9 @@ namespace Oqtane.Repository public void DeletePageModule(int pageModuleId) { using var db = _dbContextFactory.CreateDbContext(); - var pageModule = db.PageModule.Include(item => item.Module) // eager load modules + var pageModule = db.PageModule + .Include(item => item.Module) // eager load module + .Include(item => item.Page) // eager load page .SingleOrDefault(item => item.PageModuleId == pageModuleId); _settings.DeleteSettings(EntityNames.PageModule, pageModuleId); db.PageModule.Remove(pageModule); @@ -140,6 +149,7 @@ namespace Oqtane.Repository } } pageModule.Module.PermissionList = permissions?.ToList(); + return pageModule; } } diff --git a/Oqtane.Shared/Models/PageModule.cs b/Oqtane.Shared/Models/PageModule.cs index e3f0adb9..0e7c812f 100644 --- a/Oqtane.Shared/Models/PageModule.cs +++ b/Oqtane.Shared/Models/PageModule.cs @@ -59,8 +59,12 @@ namespace Oqtane.Models /// /// The itself. - /// TODO: todoc - unclear if this is always populated /// public Module Module { get; set; } + + /// + /// The itself. + /// + public Page Page { get; set; } } }