質問: 私は`Item`を持っています。 `Item`には`Category`ます。 `Category`は`ID` 、 `Name` 、 **`Parent`** 、 **`Children`**ます。 `Parent`と`Children`も`Category`です。 特定の`Item`に対してLINQ to Entitiesクエリを実行すると、 `Include("Category")`メソッドを使用しない限り、関連する`Category`は返されません。しかし、それはその親と子と共に、完全なカテゴリーをもたらさない。 `Include("Category.Parent")`実行することもでき`Include("Category.Parent")`が、このオブジェクトはツリーのようなものです。再帰的な階層があり、どこで終わるかわかりません。 どのようにしてEFに、親と子を含む`Category` 、親と子を含む親などを完全にロードさせることができますか。 これはアプリケーション全体には当てはまりません。パフォーマンス上の理由から、この特定のエンティティであるCategoryにのみ必要です。
回答: `Include`メソッドを使う代わりに`Load`使うことができます。 次に、for eachを実行し、すべての子をループして、子をロードします。その後、子供たちを通してそれぞれのためにやる。 下がるレベルの数は、持っている各ループの数でハードコードされます。 これが`Load`の使用例です`Load` : //msdn.microsoft.com/en-us/library/bb896249.aspx