none
LINQ jointure groupée avec where

    Question

  • Bonjour

    A partir de 2 Datatable j'ai fait cette requête avec jointure et filtre (mais pas de groupement)

    IEnumerable<DataRow> query = from dtrowCapt in m_DataSetConfig.Tables["Capteurs"].AsEnumerable()
                                   join dtrowVal in m_DataSetConfig.Tables["Valeurs"].AsEnumerable()
                                   on dtrowCapt.Field<Int32>("IdCapteur") equals dtrowVal.Field<Int32>("IdCapteur")
    
                                   where dtrowCapt.Field<UInt16>("Idperiph") == Idperiph
                                   where dtrowVal.Field<Boolean>("Checked") == true
    
                                   orderby dtrowCapt.Field<UInt32>("Priorité") ascending
    
                                   select dtrowCapt;

    Ayant besoin de faire un groupement de ce type

    foreach (var Capteurs in query)
    {
       code...
       foreach (var Valeurs in Capteurs.GroupementDeJointure)
       {
       }
    }

    je tente mais je n'ay arrive pas...

    Quand je tente ceci

    var query = from dtrowCapt in m_DataSetConfig.Tables["Capteurs"].AsEnumerable()
                                   join dtrowVal in m_DataSetConfig.Tables["Valeurs"].AsEnumerable()
                                   on dtrowCapt.Field<Int32>("IdCapteur") equals dtrowVal.Field<Int32>("IdCapteur") into gj
    
                                   where dtrowCapt.Field<UInt16>("Idperiph") == Idperiph
                                   where dtrowVal.Field<Boolean>("Checked") == true
    
                                   orderby dtrowCapt.Field<UInt32>("Priorité") ascending
    
                                   select new {
                                       IdCapteur = dtrowCapt.Field<Int32>("IdCapteur"),
                                       Priorite = dtrowCapt.Field<UInt32>("Priorité"),
                                       Valeurs = gj
                                   };

    Le where avec "dtrowVal" n'est plus possible "n'existe pas dans le contexte actuel

    pareil dans le select new pas moyen d'utiliser  "dtrowVal"

    Comment puis je faire ma requête groupée ?

    Merci

    vendredi 26 août 2016 19:56