Вы не должны использовать Any.Любое вычисляется как логическое.Итак, что вы на самом деле делаете, это собираете BuildingPartMainGroup, у которого есть минимум 1 BuildingPartSubGroup, у которого есть минимум 1 ..., у которого есть минимум одна BuildingPartData, у которой есть StatusPendingApprove == true.
Попробуйте рассмотреть цепочкуМетод расширения <> () на всем пути вниз по графу объектов.
Надеюсь, это поможет ...
РЕДАКТИРОВАТЬ:
context.BuildingPartMainGroups
.Inlcude("BuildingPartSubGroups.BuildingParts.BuildingPartData")
.Where<BuildingPartMainGroup>
(bpmg => bpmg.BuildingPartSubGroups.Where<BuildingPartSubGroup>
(bpsg => bpsg.BuildingParts.Where<BuildingPart>
(bp => bp.BuildingPartData"s".Where<BuildingPartData>
(bpd => bpd.StatusPendingApprove == true))))
Интересно, нужно ли включатьПрямо здесь.Если вы заинтересованы исключительно в BuidlingPartMainGroups без связанных данных, в этом нет необходимости.
Полезным советом может быть использование SQl Profiler для просмотра точного запроса SQL, который генерирует EF.таким образом вы получите больше понимания того, что ваш запрос LinqToEntities генерирует для SQL.