From fdf4fc7eca8c0bdbf8d2bf65a7a2548cd35479a0 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 23 Feb 2026 13:13:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(content):=20=E4=BF=AE=E5=A4=8D=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2EF=20Core=20LINQ?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将Dictionary.ContainsKey()从Select投影中移出 - 改为查询后在内存中映射StatusName - 添加GetNavigationStatusName辅助方法 --- .../Services/ContentService.cs | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Services/ContentService.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Services/ContentService.cs index c0c3320..f7ddd99 100644 --- a/server/MiAssessment/src/MiAssessment.Admin.Business/Services/ContentService.cs +++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Services/ContentService.cs @@ -564,6 +564,16 @@ public class ContentService : IContentService { 1, "已上线" } }; + /// + /// 获取导航状态名称 + /// + /// 状态值 + /// 状态名称 + private static string GetNavigationStatusName(int status) + { + return NavigationStatusNames.TryGetValue(status, out var name) ? name : "未知"; + } + /// /// 验证 Position 值 /// @@ -612,11 +622,16 @@ public class ContentService : IContentService LinkUrl = n.LinkUrl, Sort = n.Sort, Status = n.Status, - StatusName = NavigationStatusNames.ContainsKey(n.Status) ? NavigationStatusNames[n.Status] : "未知", CreateTime = n.CreateTime }) .ToListAsync(); + // 在内存中映射状态名称(避免 EF Core LINQ 翻译问题) + foreach (var item in items) + { + item.StatusName = GetNavigationStatusName(item.Status); + } + return PagedResult.Create(items, total, request.Page, request.PageSize); } @@ -634,7 +649,6 @@ public class ContentService : IContentService LinkUrl = n.LinkUrl, Sort = n.Sort, Status = n.Status, - StatusName = NavigationStatusNames.ContainsKey(n.Status) ? NavigationStatusNames[n.Status] : "未知", CreateTime = n.CreateTime }) .FirstOrDefaultAsync(); @@ -644,6 +658,9 @@ public class ContentService : IContentService throw new BusinessException(ErrorCodes.NavigationNotFound, "首页导航不存在"); } + // 在内存中映射状态名称 + nav.StatusName = GetNavigationStatusName(nav.Status); + return nav; }