1

SubMenus(同じタイプのMenuであるため、SubMenusとItemsも含めることができます)とItems(異なるタイプ)を持つMenuクラスがあり、それらを2つのテーブル(1つはMenus用、もう1つはItems用)に格納したとします。 。LINQ to SQLを使用してMenuクラス(そのすべてのサブメニューとアイテム)の完全グラフをロードする方法はありますか?

4

1 に答える 1

0

SQL でリレーションシップを適切に定義すると、LINQToSQL は、メニューに対する単一のクエリですべてのメニュー/アイテムを返す必要があります。ただし、これはグラフとして使用するために戻すのではなく、メニューの列挙 (関連するメニューとアイテムを含む) として使用します。この列挙を繰り返し処理し、自分でグラフを作成する必要があります。

一方、次のようなことができる場合があります。

var roots = db.Menus.Where( m => !m.SubMenus.Count == 0 );

次に、roots基本メニューのコレクションになります。グラフ分析アルゴリズムを実行するつもりはなく、GUI コンポーネントを構築するために上から下にトラバースするだけの場合は、これで十分かもしれません。

于 2009-04-11T13:23:39.037 に答える