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

Entity Framework查询问题:如何获取同一ApplicableGrade的多条记录

解决Entity Framework查询同一条件下所有记录的问题

你的问题出在查询方法的使用上:FindAsync和FirstOrDefaultAsync都是只返回第一条匹配条件的实体,再加上你无意义地在foreach循环里重复执行相同查询(循环变量value根本没用到),自然每次都拿到同一条"Banking"记录,最终列表里全是重复值。

要获取所有ApplicableGrade为"A"的Name,直接一次性查询所有符合条件的记录即可,不需要重复循环查询:

// 方式1:先获取所有符合条件的实体,再提取Name
var gradeRecords = await _repository.gradeRepository
                                   .Where(x => x.ApplicableGrade == "A")
                                   .ToListAsync();

foreach (var record in gradeRecords)
{
    gradenames.Add(record.Name);
}

// 方式2:直接投影提取Name,更简洁高效
var gradenames = await _repository.gradeRepository
                                  .Where(x => x.ApplicableGrade == "A")
                                  .Select(x => x.Name)
                                  .ToListAsync();

关键说明:

  • Where方法会筛选出所有符合条件的记录,返回IQueryable类型的查询集合
  • ToListAsync会触发数据库实际查询,并将结果转换为List<T>
  • 使用Select直接投影Name字段,能减少数据库返回的数据量,提升查询效率

内容的提问来源于stack exchange,提问作者GIS Support EEDC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:12:04