none
Entity frameWork -- LINQ c# (group by) RRS feed

  • Question

  • Bonjour A tous,

    Je souhaite transformer la requête ci dessous en syntaxe linQ et je me suis un peu perdu sur le GroupBy.

    Select bc.date_bon_de_commande, bc.matricule_collaborateur,c.nom_collaborateur,c.prenom_collaborateur, sum(bc.prix_total) 
    from t_bon_de_commande bc 
    INNER JOIN t_collaborateur c  ON bc.matricule_collaborateur = c.matricule_collaborateur
    group by bc.matricule_collaborateur, bc.date_bon_de_commande, c.nom_collaborateur, c.prenom_collaborateur

    Sur le résultat , je souhaite avoir quelque chose du genre :

    ... select new {

    name = bc.nom_collaborateur

    ville = bc.t_ville.nom_ville

    .......

    }).toList().....

    merci bcp

    • Déplacé Emile Supiot mercredi 16 décembre 2015 13:03 déplacé de Développement .NET (en général)
    mercredi 16 décembre 2015 12:24

Réponses

  •                         var toto = (
                                from bc in db.Bon_de_commande 
                                join mat in db.Collaborateurs
                                on bc.matricule_collaborateur equals mat.matricule_collaborateur
                                where bc.type == "Livraison" && bc.date_bon_de_commande.Month == (month == 0 ? DateTime.Today.Month : month) && bc.date_bon_de_commande.Year == (year == 0 ? DateTime.Today.Year : year)
                                group 
                                new {bc,mat}
                                by new {bc.matricule_collaborateur,bc.date_bon_de_commande,mat} into g
                                select new
                                {
                                    date = g.Key.date_bon_de_commande,
                                    matricule =g.Key.matricule_collaborateur,
                                    nom = g.Key.mat.nom_collaborateur,
                                    prenom = g.Key.mat.prenom_collaborateur,
                                    CA = g.Sum(test=>test.bc.prix_total),
                                    ville = g.Key.mat.t_ville.nom_ville,
                                    region = g.Key.mat.t_region.nom_region
    
                                }
                                ).ToList();

    • Marqué comme réponse thierrylaz mercredi 16 décembre 2015 14:07
    mercredi 16 décembre 2015 14:06