Просто используйте встроенный синтаксис запроса:
var users = from user in MyDbc.AspNetUsers
from plan in user.UserPlans.Where(m=>m.IsActive == 1)
where plan.PlanId == 2 || plan.PlanId == 3 && ...
Это более гибко с точки зрения выбора переменных времени запроса.И это НАМНОГО более читабельно, когда ваш запрос становится большим.Для простых запросов я лично все еще использую чистые расширения LINQ.
PS
Поскольку @ juharr , упомянутое в комментарии, ваш запрос, вероятно, будет оптимизированПоставщик SQL, так что вы хороши с производительностью, но читаемость и отказоустойчивость вашего запроса действительно плохие.