What the difference between writing a join using 2 from clauses and a where like this:
var SomeQuery = from a in MyDC.Table1
from b in MyDC.Table2
where a.SomeCol1 == SomeParameter && a.SomeCol2 === b.SomeCol1
and writing a join using the join operator.
This is for a join on 2 tables but of course, sometimes, we need to join even more tables and we need to combine other from clauses with where if we choose the syntax above.
I know both syntax queries return the same data but I was wondering if there’s a performance difference, or another kind of difference, that would conclusively favor one syntax over the other.
Thanks for your suggestions.
This question is actually answered pretty good in these two.
INNER JOIN ON vs WHERE clause
INNER JOIN vs multiple table names in "FROM"
I’ve included two examples on how three different LINQ expressions will be translated into SQL.
Implicit join:
Will be translated into
Inner join:
Will be translated into
Left outer join:
Will be translated into
If you want to test how your expressions will be translated into SQL, I recommend that you try LINQPad. It’s an awesome tool for figuring out this kind of stuff.