Let's add some indentation:
from sdc in ScheduleDestinationCaches
let twins = from gt in GetTwins(72)
join ssFilter in ScheduleStops on sdc.CarrierID equals ssFilter.CarrierID
join ssLookup in ScheduleStops on sdc.CityID equals ssLookup.CityID
join sc in ScheduleCarriers on ssLookup.CarrierID equals sc.CarrierID
where twins.Contains(ssFilter.StopID ) || ssFilter.StopID == 72
select sc
Can you see the issue now? Adding from
as an assignment to let
-defined variable starts new LINQ expression, which end with select sc
. This makes the outer query not to have select
clause at all!
I think you're looking for
from sdc in ScheduleDestinationCaches
let twins = GetTwins(72)
join ssFilter in ScheduleStops on sdc.CarrierID equals ssFilter.CarrierID
join ssLookup in ScheduleStops on sdc.CityID equals ssLookup.CityID
join sc in ScheduleCarriers on ssLookup.CarrierID equals sc.CarrierID
where twins.Contains(ssFilter.StopID ) || ssFilter.StopID == 72
select sc
Comments-based update
from sdc in ScheduleDestinationCaches
let twins = GetTwins(72).Select(x => x.Id)
join ssFilter in ScheduleStops on sdc.CarrierID equals ssFilter.CarrierID
join ssLookup in ScheduleStops on sdc.CityID equals ssLookup.CityID
join sc in ScheduleCarriers on ssLookup.CarrierID equals sc.CarrierID
where twins.Contains(ssFilter.StopID ) || ssFilter.StopID == 72
select sc