Каждый запрос синтаксиса запроса должен заканчиваться выражением select
. Вот как вы можете дифференцировать подзапрос. Если вы должны были интерпретировать:
from c in ch.Children
select c;
В качестве подзапроса запрос будет:
var query = from mychild in persons
from ch in mychild.Children
(from c in ch.Children
select c);
И внешний запрос:
from mychild in persons
from ch in mychild.Children
не будет иметь выражения select
.
Кроме того, если бы это был подзапрос, он просто поместил бы запрос в конец оператора from
и не описывал, как он используется. Чтобы включить его во внешний запрос, его нужно как-то использовать . Чтобы запрос Children
был подзапросом, вы могли бы сделать что-то вроде этого:
var query = from mychild in persons
from ch in mychild.Children
from outerChild in
(from innerChild in ch.Children
select innerChild)
select outerChild;
Очевидно, что это бесполезный способ иметь подзапрос, но это тот тип преобразования, который требуется для его интерпретации как подзапроса.
Так что да, просто посчитайте количество select
ключевых слов, чтобы увидеть количество запросов.