Spécifiez les noms de champs lors de la mise en correspondance de la liste dans Dapper

c# dapper

Question

J'ai obtenu des résultats de Dapper en tant que dictionnaire:

  using (var multi = cnn.QueryMultiple("dbo.[s_Dashboard_stats]", 
     commandType: CommandType.StoredProcedure))
  {
    var recentHits =
        multi.Read().ToDictionary(x => (string)x.URL, x => (double)x.MinsAgo);
  }

Cela fonctionnait bien mais une modification des données a conduit (correctement) à dupliquer les valeurs clés. Pour contourner ce problème, je pensais changer le dictionnaire en une liste à la place:

var PopularHits =
    multi.Read<KeyValuePair<string, double>>().ToList<KeyValuePair<string, double>>();

La liste se termine par des éléments mais les valeurs du KVP sont nulles, comment puis-je projeter les valeurs dans les objets KeyValuePair? Je n'arrive pas à obtenir la syntaxe lambda correcte .....

Réponse acceptée

multi.Read()
    .Select(x => new KeyValuePair<string, double>((string) x.URL, (double) x.MinsAgo)
    .ToList();


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi