У меня есть функция, которая выглядит следующим образом:Преобразование LINQ запрос к динамическому 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();
}
Этот пример группирует данные, основанные на местоположении. Но я хочу иметь возможность передать строку, которая указывает, на что она должна группироваться. Я думал, что DynamicLinq будет правильным путем, но у меня проблемы с воспроизведением.
Я начал делать это, но я застрять воспроизведения SelectMany внутри выберите:
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>();
}
Любые идеи о том, что мне нужно делать дальше?