次の列を持つタイプというテーブルがあります。
ID レベル名 ParentID (親行の ID)
次の列を持つ ParentObject というテーブル。ID タイプ ID
4 つの異なるレベルがあります (さらに拡張される可能性があります)。
もし私が持っていたら
ID: 1 レベル: 0 名前: Level0 ParentID: null
ID: 2 レベル: 1 名前: Level1 ParentID: 1
ID: 3 レベル: 2 名前: Level2 ParentID: 2
ID: 4 レベル: 3 名前: Level3 ParentID: 3
ID: 5 レベル: 4 名前: Level4 ParentID: 4
ParentObject テーブルには、最下位レベルの ID を格納するだけでツリーを格納します。したがって、私が持っている ID が 4 の場合、ツリーが実際に Level0 -> Level1 -> Level2 -> Level3 になることがわかります。
基本的に、linq ステートメントなどで特定のタイプ、またはタイプ レベル 2 のすべてのオブジェクトを検索できる必要があります。
ParentObject テーブルに格納されている TypeID が 4 であるため、Level3 とします。
しかし、実際には、レベル 2 型の ID が 3 であるすべての ParentObject を検索したいと考えています。
格納されている ID はレベル 1 またはレベル 2 などである可能性があるため、これを行う最善の方法は何でしょうか?
可能であれば、できれば 1 つの linq ステートメントで。