Я предлагаю вам извлечь все, что вам нужно, в «простом» запросе Select, который пойдет в базу данных, а затем выполнить форматирование локально, используя AsEnumerable
, чтобы переключиться на внутрипроцессный запрос:
var query = TrialDB.Questionnaires
.GroupBy(r => new {
Month = r.DateCreated.Month,
Year = r.DateCreated.Year,
})
.Select(group => new {
group.Key.Year,
group.Key.Month,
Total = group.Count()
})
.AsEnumerable()
.Select(x => x.Total, Date = string.Format("{0}/{1}", x.Year, x.Month))
.ToList();
Или оставьте его как DateTime
при извлечении из базы данных, как предлагает Стюарт:
var query = TrialDB.Questionnaires
.GroupBy(r => new {
Month = r.DateCreated.Month,
Year = r.DateCreated.Year,
})
.Select(group => new {
Date = group.Key,
Total = group.Count()
})
.AsEnumerable()
.Select(x => x.Total,
Date = string.Format("{0}/{1}", x.Date.Year, x.Date.Month))
.ToList();
Подробнее о AsEnumerable()
читайте в моем блоге Edulinq об этом .