One of the nice development features that LINQ to SQL supports is the ability to use a "debug visualizer" to hover over a LINQ expression
while in the VS 2008 debugger and inspect the raw SQL that the ORM will
ultimately execute at runtime when evaluating the LINQ query expression.
For example, assume we write the below LINQ query expression
code against a set of data model classes:
Figure 1

We could then use the VS 2008 debugger to hover over the
"products" variable after the query expression has been assigned:
Figure 2

And if we click the small magnifying
glass in the expression above, we can launch the LINQ to SQL debug visualizer
to inspect the raw SQL that the ORM will execute based on that LINQ query:
Figure 3

If you click the "Execute" button, you can even
test out the SQL query and see the raw returned results that will be returned
from the database:
Figure 4

This obviously makes it super easy to see precisely what SQL
query logic LINQ to SQL ORM is doing for you.
You can learn even more about how all this works by reading
the Part 3: Querying our Database segment in my LINQ to SQL
series above.