В зависимости от того, что вы пытаетесь отфильтровать, будет определен ответ:
Я предполагаю, что вы хотите, чтобы все категории учетных записей, которые имеют AccountType.ChartOfAccounts.Subscriber, соответствовали предоставленному мной идентификатору.Это вернет категорию учетной записи и будет стремиться загрузить все типы учетных записей и соответствующие им планы счетов.
var accountCategories = _context.AccountCategories
.Include(ac => ac.AccountSubCategories)
.ThenInclude(sc => sc.AccountTypes)
.ThenInclude(at => at.ChartOfAccounts)
.Where(ac => ac.AccountSubCategories
.Any(sc => sc.AccountTypes
.Any(at => at.ChartOfAccounts
.Any(ac => ac.ApplicationSubscriberId == applicationSubscriberId));
Запрос по глубоко вложенным критериям представляет собой небольшую боль.
Если вы вместо этогоЕсли вы хотите отфильтровать ChartOfAccounts для каждой возвращаемой категории учетных записей, чтобы включить диаграммы только с этим идентификатором подписчика, EF не может фильтровать наборы сущностей, поэтому вам придется выбирать эту отфильтрованную коллекцию отдельно.В зависимости от того, насколько высока фильтрация (т. Е. Включать / исключать типы учетных записей и / или подкатегории), будет определять сложность запроса.По сути, для фильтрации дочерних коллекций вам нужно явно выбрать их вместе с сущностями верхнего уровня.
Если приведенный выше пример не отражает то, что вы ищете, тогда, пожалуйста, добавьте пример состояния данных и желаемый результат, и мы можемпосмотрите, возможно ли это сделать.