Код немного грязный, если вы спросите меня, и я предполагаю, что тип Model
имеет тип IList<ArticlesContainerViewModel>
или что-то подобное. Ваша проблема в том, что вы используете IQueryable
это "высоко" в приложении. Структура, для которой я бы выбрал:
1. First select all categories and put that in your `ViewModel` using a single query.
2. From all your categories select all your articles or what else from the db in a single query, put the result in a dictionary where category is the key.
Таким образом, вы сможете получить только два запроса вместо m*(n+1)
, как сейчас.