Путаница с ключевым словом Linq "в"

Я смотрел на запрос Linq коллег, показанный ниже (запрос выполняется правильно):

from ea in EquipmentApplication
join erl in EquipmentRoutingLocation on ea.EquipmentID equals erl.EquipmentID into erlWithNulls

from erlAll in erlWithNulls.DefaultIfEmpty()
join rl in RoutingLocation on erlAll.RoutingLocationID equals rl.RoutingLocationID into rlWithNulls

from rlAll in rlWithNulls.DefaultIfEmpty()
where ea.Equipment.Master_Cell.Area.Unit.UnitID == 1160
select new { ea.Equipment, ea.ApplicationFriendlyName, rlAll }

Я не понимаю, почему это работает. Я понимаю (возможно, неправильно), что ключевое слово into завершает текущую область / контекст (и все созданные переменные теперь выходят за рамки) и создает новую. Если это правда, почему переменная ea все еще находится в области видимости в последней части запроса?

22
задан Randy Minder 4 October 2010 в 13:53
поделиться