2011-12-04 4 views
2

(C#、ASP.NET MVC、およびSQL Serverを使用して)E​​ntity Frameworkで次のクエリを実行する最も効率的な方法を判断しようとしています。階層データのクエリに関する提案

私は場所の階層テーブルを持っています。 ParentLocationID列は、親の場所を参照します。たとえば、米国はユタ州の親会社である可能性があります。

[Locations] 
ID int 
Title nvarchar(100) 
ParentLocationID int 

そしてIは、対応する場所を参照して、活動のテーブルを持っています。

[Activities] 
ID int 
Title nvarchar(100) 
LocationID int 

実行したいクエリは、その場所の「サブロケーション」のすべてのアクティビティを含む、特定のロケーションのすべてのアクティビティを見つけることです。 (たとえば、場所が米国の場合は、米国、ユタ、ソルトレークシティー、カリフォルニアなどのすべてのアクティビティを含める必要があります)

C#のみを使用して、これを実装する再帰的な方法を記述します。しかし、EFかSQL Serverのどちらかが、多数の別々のクエリを必要としないこのシナリオのサポートを提供するかどうかは疑問です。私は他の人々がこれにどのように接近するかのヒントを聞いてみたいと思う。共通テーブル式(CTE )を使用して

答えて