Je me suis retrouvé coincé dans certaines requêtes linq pour la première fois aujourd'hui et je suis aux prises avec certaines des plus compliquées. Je construis une requête pour extraire des données d'une table pour construire un graphique. Les colonnes colonnes qui m'intéressent sont Id, Time et Valeur.Regroupement par plage horaire dans Linq
L'utilisateur sélectionnera une heure de début, une heure de fin et le nombre d'intervalles (points) à représenter graphiquement. La colonne de valeur sera moyennée pour chaque intervalle.
Je peux le faire avec une requête linq pour chaque intervalle, mais j'essaie de l'écrire dans une requête, donc je n'ai besoin d'aller à la base de données qu'une seule fois.
Jusqu'à présent, j'ai obtenu:
var timeSpan = endTime.Subtract(startTime);
var intervalInSeconds = timeSpan.TotalSeconds/intervals;
var wattList = (from t in _table
where t.Id == id
&& t.Time >= startTime
&& t.Time <= endTime
group t by intervalInSeconds // This is the bit I'm struggling with
into g
orderby g.Key
select g.Average(a => a.Value))
).ToList();
Toute aide sur le regroupement sur des plages horaires seront les bienvenus.
Inspiré merci – Magpie