fix(content): 修复导航列表查询EF Core LINQ翻译错误
- 将Dictionary.ContainsKey()从Select投影中移出 - 改为查询后在内存中映射StatusName - 添加GetNavigationStatusName辅助方法
This commit is contained in:
parent
951536357a
commit
fdf4fc7eca
|
|
@ -564,6 +564,16 @@ public class ContentService : IContentService
|
||||||
{ 1, "已上线" }
|
{ 1, "已上线" }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取导航状态名称
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="status">状态值</param>
|
||||||
|
/// <returns>状态名称</returns>
|
||||||
|
private static string GetNavigationStatusName(int status)
|
||||||
|
{
|
||||||
|
return NavigationStatusNames.TryGetValue(status, out var name) ? name : "未知";
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证 Position 值
|
/// 验证 Position 值
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -612,11 +622,16 @@ public class ContentService : IContentService
|
||||||
LinkUrl = n.LinkUrl,
|
LinkUrl = n.LinkUrl,
|
||||||
Sort = n.Sort,
|
Sort = n.Sort,
|
||||||
Status = n.Status,
|
Status = n.Status,
|
||||||
StatusName = NavigationStatusNames.ContainsKey(n.Status) ? NavigationStatusNames[n.Status] : "未知",
|
|
||||||
CreateTime = n.CreateTime
|
CreateTime = n.CreateTime
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
// 在内存中映射状态名称(避免 EF Core LINQ 翻译问题)
|
||||||
|
foreach (var item in items)
|
||||||
|
{
|
||||||
|
item.StatusName = GetNavigationStatusName(item.Status);
|
||||||
|
}
|
||||||
|
|
||||||
return PagedResult<HomeNavigationDto>.Create(items, total, request.Page, request.PageSize);
|
return PagedResult<HomeNavigationDto>.Create(items, total, request.Page, request.PageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -634,7 +649,6 @@ public class ContentService : IContentService
|
||||||
LinkUrl = n.LinkUrl,
|
LinkUrl = n.LinkUrl,
|
||||||
Sort = n.Sort,
|
Sort = n.Sort,
|
||||||
Status = n.Status,
|
Status = n.Status,
|
||||||
StatusName = NavigationStatusNames.ContainsKey(n.Status) ? NavigationStatusNames[n.Status] : "未知",
|
|
||||||
CreateTime = n.CreateTime
|
CreateTime = n.CreateTime
|
||||||
})
|
})
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
|
@ -644,6 +658,9 @@ public class ContentService : IContentService
|
||||||
throw new BusinessException(ErrorCodes.NavigationNotFound, "首页导航不存在");
|
throw new BusinessException(ErrorCodes.NavigationNotFound, "首页导航不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 在内存中映射状态名称
|
||||||
|
nav.StatusName = GetNavigationStatusName(nav.Status);
|
||||||
|
|
||||||
return nav;
|
return nav;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user