エンティティ フレームワーク (コード ファースト) C#
1 対多構造のノードを持つツリー構造があります。
Node
|
\--- Children
すべての子 (ICollection) を列挙する必要があります。現在、これは私がコードを見ている方法です:
using (DBContext context = new DBContext()
{
parentNode = (from query in context.Tree
where query.IsSomeWayToIDTheParentNode
select query).ToArray();
}
var tree = SomeRecursiveTreeBuilderMethod(parentNode);
このコードでは、parentNode の第 1 レベルの Children プロパティが列挙されていますが、実際の子ノードの Children プロパティは列挙されていないため、ContextDisposed 例外がスローされます。
.Include(inc => inc.Children) をクエリ全体 (括弧の後) と context.Tree の両方に追加しようとしましたが、うまくいきませんでした。列挙を強制する using ステートメント内で再帰的な 'ChildEnumerator(parentNode)' メソッドを簡単に呼び出すことができますが、オブジェクトと子オブジェクト (n-deep) がすべて完全であることを確認するためのより良い方法が必要だと感じています。コンテキストスコープをエスケープする時点で入力されます。