Amit, you should know that Node is not, in fact, a temporary table (although, I agree, in effect is works like it might as well be one). Node is a Common Table Expression. No storage is reserved for it, and it is only accessible to the statement in which it is declared.
Now, that doesn't begin to address your question - but (especially in our profession) it never hurts to be accurate in the names we use for things. And -
it helps when you're searching for answers to questions: A quick Google for
use CTE in linq to sql yielded (amongst others) the following:
http://stackoverflow.com/questions/584841/common-table-expression-cte-in-linq-to-sql[
^] which, in turn references
How To: Directly Execute SQL Queries [in Linq-to-Sql][
^].