Я строю портал (это мой хобби-проект), и для моей индексной (домашней) страницы мне нужно написать конкретный запрос.
Я хочу получить категории в указанном порядке. Для каждой категории я хочу загрузить N самых последних статей, которые прилагаются к ней. Так что в основном моя домашняя страница будет выглядеть так
Category 1 Category 2
Article title 1 Article title 1
Article title 2 Article title 2
.... ....
Article title N Article title N
Category 3 Category 4
Article title 1 Article title 1
Article title 2 Article title 2
.... ....
Article title N Article title N
Моя упрощенная модель предметной области выглядит следующим образом:
public class CategoryInfo
{
public virtual Int64 ParentId? { get; set; }
public virtual String Name { get; set; }
public virtual Int32 DisplayOrder { get; set; }
public virtual ICollection<ArticleInfo> Articles { get; set; }
}
public class ArticleInfo
{
public virtual String Title { get; set; }
public virtual DateTime Published { get; set; }
public virtual Int64? CategoryId { get; set; }
public virtual CategoryInfo { get; set; }
}
Категория может иметь много статей, связанных с ней. Статья может быть без рубрики.
Итак, я пытаюсь сделать это следующим образом:
var query = _categoryService.GetCategories().Where(x => !x.ParentId.HasValue) // Getting only top level categories
.OrderBy(x => x.DisplayOrder) // Sorting
.Select(x => x.Articles.OrderByDesc(a => a.Published).Take(N))
Это не работает. Есть идеи?