Given a LINQ to Entity query with an outer join…
var query = from items in entityDb.TableName
join requestedBy in entityDb.People on items.RequestedById equals requestedBy.PersonId into requestedByOuter
from requestedBy in requestedByOuter.DefaultIfEmpty()
select items;
What does the compiled (Lamba expressions) version of such an outer join look like? Is there any way to see this in the visual studio debugger?
UPDATE
To clarify, Jon Skeet explains in his book that query expressions are “compiler translated” to normal C# code before doing “real compilation”. My question is how is the query expression translated to real C# in the case of outer joins? And, can we see these translations in the debugger or by some other means?
The following statement:
Would result in this lamba expression (according to the excellent application LINQPad):