2012-01-04 48 views
27

que tienen una muy simple consulta SQLGrupo varias tablas en LINQ

Select r.SpaceID,Count(*), SpaceCode from Rider r join Spaces s 
on r.SpaceID=s.SpaceID 
Group By r.SpaceID, s.SpaceCode 

Tenga en cuenta que mi grupo por la cláusula está en varias tablas, quiero hacer lo mismo en LINQ, sé cómo agrupar sola tabla , pero sobre tablas múltiples no tengo idea.

+0

Sólo hay que ver aquí: http: // stackoverflow. com/questions/3435485/linq-group-by-multiple-tables –

+0

Gracias, ya lo he visto, pero Concat no parece una buena opción, además la estructura de mi mesa es muy diferente, s o esto no va a funcionar para mí, – MegaMind

Respuesta

52

para agrupar varias tablas que puede hacer como:

group new { r,s } by new { r.SpaceID, s.SpaceCode } 
+1

Gracias grandes Pankaj, esto funciona como un encanto – MegaMind

+0

Bienvenido @MegaMind. –

25

esto podría ayudar:

(
    from r in db.Rider 
    join s in db.Spaces 
     on r.SpaceID equals s.SpaceID 
    group new { r,s } by new { r.SpaceID, s.SpaceCode } 
    into grp 
    select new 
    { 
     Count=grp.Count(), 
     grp.Key.SpaceID, 
     grp.Key.SpaceCode 
    } 
) 

Donde db es el contexto de la base

+1

Seleccione una parte debe ser: SELECT nueva { Count = grp.Count(), grp.Key.SpaceID, grp.Key.SpaceCode } ' –

+0

Eso es cierto. Actualicé la solución – Arion

+0

@Arion: la corrección de Petr Behensky aún no aparece en su solución. – Buggieboy