【发布时间】:2020-12-19 07:02:19
【问题描述】:
我正在查看一个同事的 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' 变量仍在查询的最后一部分的范围内?
【问题讨论】:
标签: linq