#asp.net #sql #linq #sql-server-2008
#asp.net #sql #linq #sql-server-2008
Вопрос:
Я пытаюсь воспроизвести этот SQL-запрос
SELECT COUNT(1) AS Records, MONTH(date) AS Month, YEAR(date) AS YEAR
FROM tblBlogEntries
GROUP BY MONTH(date), YEAR(date)
ORDER BY year DESC, month DESC
В LINQ я дошел до этого:
var q = from Rec in db.tblBlogEntries
group Rec by new { Rec.date.Value.Year, Rec.date.Value.Month } into G
select new {
Month = G.Key.Month,
Year = G.Key.Year
};
Но я все еще новичок в LINQ и немного заблудился. Спасибо за любую помощь!
Ответ №1:
Попробуйте это вместо:
var query = from rec in db.tblBlogEntries
group rec by new { rec.date.Value.Month,
rec.date.Value.Year } into g
orderby g.Key.Year descending, g.Key.Month descending
select new {
Count = g.Count(),
g.Key.Year,
g.Key.Month
};
Комментарии:
1. Работает замечательно, спасибо, Джон! Теперь я постепенно осваиваюсь с Linq, начиная по-настоящему любить его!