Должно работать следующее (LinqToEntities):
var categories = from c in oc.Categories
select new
{
CategoryId = c.Id,
c.Value,
Count = c.Blogs.Count()
}
Это даст вам список идентификаторов и значений категорий, и для каждого идентификатора категории вы получите количество блогов в этой категории.
РЕДАКТИРОВАТЬ: Чтобы дать ответ на вопрос в вашем комментарии: это невозможно в LinqToEntities, но вы можете сделать это в Entity SQL.
var results = new ObjectQuery<DbDataRecord>(
@"SELECT y, COUNT(y)
FROM MyEntities.Blogs AS b
GROUP BY YEAR(b.CreatedDate) AS y", entities).ToList();
var nrBlogsPerYear = from r in results
select new { Year = r[0], NrBlogs = r[1] };
В запросе Entity SQL вы должны заменить MyEntities
именем вашего контекста.
РЕДАКТИРОВАТЬ: Как я только что узнал из комментария Крейга, группировка по годам это возможно в L2E, поэтому вы можете написать свой запрос следующим образом:
var nrBlogsPerYear = from b in oc.Blogs
group b by b.CreatedDate.Year into g
select new { Year = g.Key, NrBlogs = g.Count() };