Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Nouveau Membre du Club
    Inscrit en
    octobre 2009
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 58
    Points : 38
    Points
    38

    Par défaut Linq to SQL group by id

    Bonjour à tous,
    J'ai l'impression d'avoir à faire à un bug de linq car je m'arrache les cheveux depuis plusieurs jours et aucune des solutions trouvées sur internet ne fonctionne...
    Mon problème (simplifié) : j'ai une base de données avec plusieurs champs, dont un code identifiant qui identifie un objet (mais pas la ligne !), pour un même objet je peux donc avoir plusieurs lignes correspondantes.
    Je souhaite créer un dictionnaire de liste d'objets avec comme clé l'identifiant de l'objet et comme élément du dictionnaire une liste d'objet.
    J'ai donc à faire à un group by classique il me semble !
    Je travaille sous entityframework en C#,
    j'essaye donc :
    Code :
    1
    2
    3
    4
     
    var groupData = from data in maBase.maTable
    group data by data.id;
    return groupData.todictionnary(f=>f.id,f=f.ToList());
    Normalement à cette étape, je devrais avoir dans mon dictionnaire mes objets groupés par id, et pour chaque id une liste d'objet... Or j'ai pour la majorité de mes identifiant, je me retrouve avec un seul objet, et pour certains plusieurs...je n'y comprend absolument rien...
    Si quelqu'un à une idée...
    merci par avance !

  2. #2
    Membre Expert

    Homme Profil pro John Doe
    Développeur .NET
    Inscrit en
    novembre 2010
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Nom : Homme John Doe
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2010
    Messages : 1 138
    Points : 1 879
    Points
    1 879

    Par défaut

    Bonjour,
    je pense que tu t'es trompé dans la construction de ton dictionnaire c'est f.key et non f.id

  3. #3
    Expert Confirmé
    Avatar de GuruuMeditation
    Homme Profil pro Olivier Matis
    .Net Architect
    Inscrit en
    octobre 2010
    Messages
    1 591
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Matis
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 1 591
    Points : 3 197
    Points
    3 197

    Par défaut

    Et il manque un ">" dans "f=f.ToList()"
    Microsoft MVP : Visual C#

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  4. #4
    Nouveau Membre du Club
    Inscrit en
    octobre 2009
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 58
    Points : 38
    Points
    38

    Par défaut

    le f.key était bien là et j'avais bien mis le > le problème ne vient pas de là

  5. #5
    Membre Expert

    Homme Profil pro John Doe
    Développeur .NET
    Inscrit en
    novembre 2010
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Nom : Homme John Doe
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2010
    Messages : 1 138
    Points : 1 879
    Points
    1 879

    Par défaut

    si tu pouvais mettre la requête que tu utilises vraiment, après as-tu vérifié que tes résultats correspondent bien à ce que tu as en bdd ?

  6. #6
    Invité de passage
    Inscrit en
    octobre 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : octobre 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    namespace ForumMFEQ.Areas.Admin.Controllers
    {
    public class HistoriquesController : Controller
    {
    //
    // GET: /Admin/Historiques/
    private ForumEntities _db = new ForumEntities();

    public ActionResult Index()
    {
    var groupData = from data in _db.FRM_LOG
    group data by data.ADRESSEIP;

    return View(groupData.ToDictionary(f => f.Key, f => f.ToList()));
    }

    }
    }

    Merci !!

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •