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

如何在包含数学运算的Linq查询中获取ExtrasName与ExtrasId的列表

解决Linq查询中添加ExtrasId和ExtrasName列表的需求

嘿,我明白你想要在现有Linq查询的返回结果里,同时拿到选中的配套设施(Extras)的ID和名称列表。结合你的实体模型关联关系,我们可以直接通过分组后的集合来提取这些信息,下面是修改后的完整查询:

var query = from a in _context.Cities
            from b in a.CityExtras
            where a.CityId == CityId && extraIds.Contains(b.ExtrasId)
            group new { a, b } by new { a.PricePerSqM, a.Name, a.CityId } into g
            select new 
            {
                City = g.Key.Name,
                PricePerSqM = g.Key.PricePerSqM,
                TotalPrice = g.Sum(x => x.b.Price) + g.Key.PricePerSqM * squareMeter,
                // 添加配套设施的ID和名称列表
                SelectedExtras = g.Select(x => new 
                {
                    ExtrasId = x.b.Extras.ExtrasId,
                    ExtrasName = x.b.Extras.ExtrasName
                }).ToList()
            };

关键修改说明:

  • 利用CityExtras实体的Extras导航属性,我们可以直接从分组后的g集合中访问对应的Extras信息
  • 通过g.Select()提取每个关联的ExtrasId和ExtrasName,并用ToList()将其转换为列表类型,方便后续使用
  • 如果你的EF Core上下文没有自动加载导航属性,建议在查询开头加上Include语句确保关联数据被正确加载:
    var query = from a in _context.Cities.Include(c => c.CityExtras).ThenInclude(ce => ce.Extras)
                // 后续查询逻辑不变
    

这样修改后,查询返回的结果就会包含每个城市对应的选中配套设施的ID和名称列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 12:52:29