首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linq查询求和和分组依据

问linq查询求和和分组依据
EN

Stack Overflow用户
提问于 2015-10-09 03:06:12
回答 1查看 273关注 0票数 1

我需要关于linq查询的帮助,SQL是

代码语言:javascript
复制
select usuario2.PkUsuarioId, sum (evento.EventoHora) as total
from TUsuario as usuario, TUsuario as usuario2, TEvento as evento
where usuario.PkUsuarioId = 2 
and usuario.PkUsuarioId = usuario2.Fkusuario_UsuarioAdminId 
and usuario2.PkUsuarioId = evento.FkEvento_UsuarioId
group by (usuario2.PkUsuarioId)

结果:

​

​

我在Linq查询中需要这个SQL,我尝试过这个Linq查询

代码语言:javascript
复制
from usuario in TUsuario
from usuario2 in TUsuario
from evento in TEvento
where usuario.PkUsuarioId == 2
&& usuario.PkUsuarioId == usuario2.FkUsuario_UsuarioAdminId
&& usuario2.PkUsuarioId == evento.FkEvento_UsuarioId
group usuario2 by usuario2.PkUsuarioId into value
select new {value.Key, suma = TEvento.Sum(x => x.EventoHora)}

结果:

​

​

为什么linq查询在所有行中抛出50?

EN

回答 1

Stack Overflow用户

发布于 2015-10-09 03:20:55

问题在于,您对整个表而不是组进行求和,并且对usuario2而不是evento进行分组。此外,如果可能的话,您应该尝试使用导航属性。它应该看起来像这样,这取决于你的实体。

代码语言:javascript
复制
from usuario in TUsuario
from usuario2 in usuario.TUsuarios
from evento in usuario2.TEventos
where usuario.PkUsuarioId == 2
group evento by usuario2.PkUsuarioId into grp
select new 
{
    grp.Key, 
    suma = grp.Sum(x => x.EventoHora)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33023992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档