Szukałem w zapytaniu współpracownicy LINQ pokazano poniżej (kwerenda wykonuje poprawnie):LINQ „do” zamieszania kluczowego
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 }
Jestem zdezorientowany, dlaczego to działa. Rozumiem (być może niepoprawnie), że słowo kluczowe "do" kończy bieżący zakres/kontekst (a wszelkie zmienne utworzone są poza zakresem) i tworzy nowe. Jeśli to prawda, dlaczego zmienna "ea" nadal znajduje się w zakresie w ostatniej części zapytania?
więc podczas korzystania z wielu sprzężeń używacie „do” klauzuli i dołącz kolejną frazę, że „zmienna”, że właśnie dodane? – Jacques