Données hiérarchiques dans Linq - options et performances

J'ai quelques données hiérarchiques - chaque entrée dispose d'un identifiant et d'un (nullable) parent de l'id d'entrée.
Je veux récupérer toutes les entrées dans l'arbre sous une donnée d'entrée. C'est dans un Serveur SQL server 2005 bases de données. Je suis d'interrogation avec LINQ to SQL en C# 3.5.

LINQ to SQL ne prend pas en charge Les Expressions De Table Communes directement. Mes choix sont à assembler les données dans le code avec plusieurs requêtes LINQ, ou pour faire une vue sur la base de données que les surfaces d'un CTE.

De l'option (ou une autre option) vous pensez que vous allez effectuer meilleure quand les volumes de données obtenez un grand?
Est SQL Server 2008 Type HierarchyId pris en charge dans Linq to SQL?

source d'informationauteur Anthony