Меня немного смущает, что каждая подкатегория может принадлежать более чем к одной категории - правильно ли вы установили эти отношения?
Несмотря на это, я думаю, что это, вероятно, более читабельно, если вы сначала измените выбор для работы с категориями - то есть что-то вроде:
var subCatQuery = from cat in storeDB.Categories
where cat.Name == category
select cat.SubCategories;
, который вы можете выполнить, чтобы получить свой IEnumerable <>:
var subCategories = subCatQuery.ToList();
Я считаю, что это гораздо более читабельно / понятно.
(я также считаю, что синтаксис запроса здесь легче читать, чем свободный стиль)