У меня есть таблица под названием «Статьи».
включает в себя следующее поле:
ArticleIndex, ArticleLevel, ArticleParentIndex.
Я сделал запрос, который возвращает все статьи с ArticleLevel = 1 - назовем его query1.
Запрос, который возвращает все статьи с ArticleLevel = 2 - query2.
Я хотел бы получить запрос, который бы возвращал Статьи уровня = 1 с хотя бы одной дочерней статьей (дочерние статьи имеют уровень = 2), а также количество дочерних статей.
Пока у меня есть следующий запрос:
var filteredItemsGrouped = from i in filteredItems
group i by i.ArticleParentIndex into g
select new { Node = g, NodeItemsCount = g.Count() };
и затем, чтобы получить реальные статьи с уровнем = 1, я делаю:
IList<ArticleNodeInfo> Nodes = new List<ArticleNodeInfo>();
foreach (var node in filteredItemsGrouped)
{
Nodes.Add(new ArticleNodeInfo
{
Node = articlesService.GetArticleByIndex((int)(node.Node.FirstOrDefault().ArticleParentIndex)),
NodeItemsCount = node.NodeItemsCount
});
}
Этот процесс слишком дорогой. Можно ли добиться того же самого одним запросом (вместо того, чтобы каждый раз получать по индексу статьи)?
Надеюсь, я достаточно ясно ...