0

SQL に 2 つのテーブルがあります。

DOCUMENT
ID int
Description varchar(50)

DOCUMENTLINK
ParentID int
ChildID int

LINQ を使用して、これら 2 つのテーブルによって形成された階層 (2 つのレベルのみが使用されます) をオブジェクトとして返すにはどうすればよいですか?

構造は次のようになります。

Parent1  
---------Child1  
---------Child2  
Parent2  
---------Child3  
Parent3  
Parent4  
---------Child2  
---------Child3  
Parent5  
---------Child1  
---------Child4
---------Child5
4

2 に答える 2

2

LINQ answer:

var tree = from top in nodes
           from middle in nodes
           from bottom in nodes
           where top.Id == middle.ParentId
           && middle.Id == bottom.Id
           select new
           {
               Top = top,
               Middle = middle,
               Bottom = bottom
           };
于 2013-09-09T13:31:27.760 に答える
1

SQLの答えは次のとおりです。

SELECT *
FROM (Table1
INNER JOIN Table1 AS Table1_1 ON Table1.ParentID = Table1_1.ID)
INNER JOIN Table1 AS Table1_2 ON Table1_1.ParentID = Table1_2.ID;

これは、すべてのレベルを持つアイテムのみを表示することに注意してください。子のない親を含めるには、すべての内部結合を左外部結合に変更します

于 2013-09-09T13:25:42.297 に答える