我在concat或union之后遇到group by子句的情况。
如果我删除分组依据,查询工作正常并返回预期的结果但不分组和总分(Puntos)。
查询
var resultados = (from p in partidos
join e1 in equipo
join e2 in equipo
join g in grupo
join up in usuario_partido
join pr in pronostico
where ..
group up by g.Nombre into g
select new
{
Grupo = g.Key,
Posiciones = (
(
from g1 in g
select new
{
Equipo = g1.Partido.Equipo1.Nombre,
Imagen = g1.Partido.Equipo1.Imagen,
Puntos = g1.Goles_Equipo1 > g1.Goles_Equipo2 ? 3 : g1.Goles_Equipo1 == g1.Goles_Equipo2 ? 1 : 0
}
).Concat
(
from g1 in g
select new
{
Equipo = g1.Partido.Equipo2.Nombre,
Imagen = g1.Partido.Equipo2.Imagen,
Puntos = g1.Goles_Equipo2 > g1.Goles_Equipo1 ? 3 : g1.Goles_Equipo2 == g1.Goles_Equipo1 ? 1 : 0
}
)).GroupBy(p => new { p.Equipo, p.Imagen }, (k, gr) => new
{
Equipo = k.Equipo,
Imagen = k.Imagen,
Puntos = gr.Sum(p => p.Puntos)
})
});
异常
System.ArgumentException:类型的表达式 ' {System.Collections.Generic.IEnumerable {1}} 2 [Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor + TransparentIdentifier
1[Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor+TransparentIdentifier
2 [Usuario_Partido,Microsoft.EntityFrameworkCore.Storage.ValueBuffer],System.Collections.Generic .IEnumerable2[Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor+TransparentIdentifier
1 [System.Object的]'方法 ' {System.Collections.Generic.IEnumerable {1}} 1 [System.Object的], System.Collections.Generic.IEnumerable`1 [System.Object的])'参数名称:arg0
我使用的是EF Core 2
PackageReference Include =" Microsoft.EntityFrameworkCore.Design"版本=" 2.0.3"
PackageReference Include =" Microsoft.AspNetCore.Identity.EntityFrameworkCore"版本=" 2.0.3"
PackageReference Include =" Microsoft.EntityFrameworkCore.SqlServer"版本=" 2.0.3"
谢谢!