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; }