Имея следующий интерфейс:
public class foo
{
[Key]
public int Id { get; set; }}
public string Notes { get; set; }
public DateTime? Timestamp { get; set; }
}
Использование контекста данных, например: await context.foos.ToListAsync()
возвращает полный список записей. Цель, которую я хочу достичь, - это реструктурированный объект JSON с тем же откликом, что и ниже:
[
{
year: YYYY,
count: 0, // <- total `foos` in year
months: [
{
month: 'January',
count: 0, // <- total `foos` in month
days: [
{
day: 0,
count: 0, // <- total `foos` in day
foos: [
{
Id: 0,
Notes: '...',
Timestamp: '...'
}
]
}
]
}
]
}
]
Я смог достичь этого с помощью нескольких вложенных циклов for. Однако это кажется очень плохим подходом, поскольку вложенные циклы увеличивают время процесса в геометрической прогрессии.
Есть ли какой-нибудь способ достичь этого с помощью LINQ? Или, может быть, более эффективное решение?