c# - 在 Enity Framework Core 中分组和选择
问题描述
我有这个模型:
public class Evento: Base
{
public string Pais { get; set; }
public string Regiao { get; set; }
public string Estado { get; set; }
public string Evento{ get; set; }
public double Valor { get; set; }
public long Time { get; set; }
}
这是我正在处理的查询:
IQueryable<Evento> query = _context.Eventos;
return query.AsNoTracking()
.GroupBy(s => new { s.Regiao, s.Pais })
.Select(ss => new Evento
{
Pais = ss.Key.Pais,
Regiao = ss.Key.Regiao,
Valor = ss.Sum(soma => soma.Valor),
Evento = ??
}).ToList();
我想要一个 Linq 查询来生成一个输出,它相当于如下所示的数据:
________________________________________________
| Pais | Regiao | Evento | Valor |
|- Argentina|- Oeste |- Evento02 |- 2675.0 |
|- Brasil |- Sudeste |- Evento01 |- 1800.0 |
|- Brasil |- Sul |- Eventor02 |- 2700.0 |
我需要将字段“Evento”提取到结果列表中的 Evento-Object 中。我怎样才能做到这一点?
解决方案
您似乎想按 分组Evento
,但由于某种原因,它未包含在您的GroupBy
. 添加它,我们得到以下信息:
IQueryable<Evento> query = _context.Eventos;
return query.AsNoTracking()
.GroupBy(s => new { s.Regiao, s.Pais, s.Evento })
.Select(ss => new Evento
{
Pais = ss.Key.Pais,
Regiao = ss.Key.Regiao,
Valor = ss.Sum(soma => soma.Valor),
Evento = ss.Key.Evento
}).ToList();
推荐阅读
- flutter - 为什么不建议在程序文件中解压flutter?
- java - 多线程 Java 应用程序中的 xpathFactory 问题
- node.js - Express API 响应直接在浏览器中输出,而不是由 Nuxt.js 处理
- javascript - 如何提供不变的唯一键来列出 React 中的项目?
- wifi - 如何关闭 Cox Panoramic Wifi 附带的 safebrowsing.io?
- discord.js - 我如何解除公会的每个成员的禁令
- javascript - 通过php向js发送两个变量
- spring-security - 如何避免在 Spring Security 中为非 TokenRelay 页面应用 Token
- javascript - React.js - 待办事项列表编辑按钮不起作用
- c++ - C ++中按值返回与引用的指南?