SubMenus(同じタイプのMenuであるため、SubMenusとItemsも含めることができます)とItems(異なるタイプ)を持つMenuクラスがあり、それらを2つのテーブル(1つはMenus用、もう1つはItems用)に格納したとします。 。LINQ to SQLを使用してMenuクラス(そのすべてのサブメニューとアイテム)の完全グラフをロードする方法はありますか?
質問する
310 次
1 に答える
0
SQL でリレーションシップを適切に定義すると、LINQToSQL は、メニューに対する単一のクエリですべてのメニュー/アイテムを返す必要があります。ただし、これはグラフとして使用するために戻すのではなく、メニューの列挙 (関連するメニューとアイテムを含む) として使用します。この列挙を繰り返し処理し、自分でグラフを作成する必要があります。
一方、次のようなことができる場合があります。
var roots = db.Menus.Where( m => !m.SubMenus.Count == 0 );
次に、roots
基本メニューのコレクションになります。グラフ分析アルゴリズムを実行するつもりはなく、GUI コンポーネントを構築するために上から下にトラバースするだけの場合は、これで十分かもしれません。
于 2009-04-11T13:23:39.037 に答える