Я смотрел на запрос 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 все еще находится в области видимости в последней части запроса?