У меня есть таблица Account со столбцом с именем CreatedOn (nullable datetime).
Я пишу метод, который принимает два параметра от и до (объекты DateTime), и я хочу выбрать все даты междуот и до вместе с количеством строк в T, которые были созданы в каждую из этих дат.
Как я могу сделать это элегантным и эффективным способом в LINQ?
Я пытался сделать это таким образом, но, похоже, запрашивает базу данных один раз для каждой даты в списке дат:
static void Test(DataClasses1DataContext context, DateTime from, DateTime to)
{
List<DateTime> dates = new List<DateTime>();
while (from <= to)
{
dates.Add(from.Date);
from = from.AddDays(1);
}
var result = dates.Select(d => new { Date = d, Count = context.Accounts.Count(a => a.CreatedOn.HasValue && a.CreatedOn.Value.Date == d) });
foreach (var row in result)
Console.WriteLine(row.Date + " " + row.Count);
}