You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 写入Excel单元格时将关联Location整型ID转为对应字符串值的问题

问题根因

你代码中X.Location存储的是SubLocation对应的主键ID(整型值),直接调用ToString()只会将数字转为字符串格式,无法匹配到对应的地点名称。

解决方法

直接调用你已经封装好的Global.GetDetail()工具方法,传入X.Location的ID值获取对应的SubLocation实例,再读取你需要的字符串字段即可,同时要增加空值判断避免ID不存在时抛出空引用异常。

修改后的代码示例如下:

List<UserLicense> B = applicationDbContext.ToList();
foreach (var X in B)
{
    // 根据存储的ID查询对应的地点详情
    var subLocation = Global.GetDetail(X.Location);
    // 取值可根据需求替换为 LocationName(对应示例的Brazil)或 Name(对应示例的Di Janero)
    worksheet.Cells["H" + K].Value = subLocation?.LocationName ?? "未知地点";
    K++; // 注意行号变量要正常自增,避免覆盖同一单元格
}
补充说明

如果你的UserLicense中List<SubLocation> Locations导航属性已经通过EF Core预加载了关联数据,也可以直接从该集合中匹配取值,不需要重复调用全局方法。


内容的提问来源于stack exchange,提问作者Momen Alnaser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:15:03