J'ai une fonction qui ressemble à ceci:requête LINQ to Dynamic Linq
public void GetAvailableResourcesByLocationChart(List<DateTime> dates, List<ChartResourceModel> data)
{
var totals = (from r in data
group new { Dates = r.Dates } by r.Location into g
select new
{
Location = g.Key,
Dates = dates.Select(d => new
{
Date = d,
Available = g.SelectMany(x => x.Dates.Where(y => y.Date == d)).Count(x => x.Available)
})
.OrderBy(x => x.Date)
.ToList()
})
.OrderBy(x => x.Location)
.ToList();
}
Cet exemple regroupe les données selon l'emplacement. Mais je veux être capable de transmettre une chaîne qui spécifie ce sur quoi elle doit se grouper. Je pensais que DynamicLinq serait la bonne façon d'y parvenir mais j'ai du mal à le reproduire.
J'ai commencé à faire cela, mais je suis coincé se reproduire le SelectMany dans la sélection:
public void GetAvailableResourcesByLocationChart(List<DateTime> dates, List<ChartResourceModel> data, string grouping)
{
var totals = data.GroupBy(grouping, "it").Select("new (it.Key as Group, it as Dates)").Cast<dynamic>();
}
Toutes les idées sur ce que je dois faire?