2011-06-15 101 views
3

我有以下平面數據結構。將平面數據結構轉換爲層次結構使用c#對象#

ParentAttributeId AttributeId List 
----------------- ----------- ------ 
NULL    29   TestcaseCollection 
29    30    EnclosureLeakageDielectricStrengthTest 
30    31     DeviceID 
30    32     ScannerOneLowChannel 
30    33     ScannerTwoLowChannel 
29    34    EnclosureLeakageLeakageCurrentTest 
34    35     DeviceID 
34    36     ScannerOneLowChannel 
34    37     ScannerTwoLowChannel 
29    38    PatientCircuitLeakageTest 
38    39     DeviceID 
38    40     ScannerOneLowChannel 
38    41     ScannerTwoLowChannel 
29    42    SIPSOPDielectricStrengthTest 
42    44     ScannerOneHighChannel 
42    45     ScannerOneLowChannel 
42    46     ScannerTwoHighChannel 
42    47     ScannerTwoLowChannel 
29    48    SIPSOPLeakageCurrentTest 
48    49     ScannerOneHighChannel 
48    50     ScannerOneLowChannel 
48    51     ScannerTwoHighChannel 
48    52     ScannerTwoLowChannel 

我需要將上面的平面數據結構轉換爲像下面這樣的層次結構的對象結構。所以我的對象看起來像上面的「列表」列。我正在使用SQL存儲過程來獲取上述數據。我正在使用C#。

對象層次

29 
    | 
    30 
    | 31 
    | 32 
    | 33 
    | 
    34 
    | 35 
    | 36 
    |37 
    38 

任何幫助將不勝感激。

問候 二重

回答

0

你有沒有看AutoMapper

不知道這是你需要什麼,但這是我用來經常從一種格式轉換爲對象模型。

另一種選擇可能是使用LINQ查詢您擁有的數據併爲您創建模型。

我想你可以說這樣的話,這是未經測試的;

從DataList的選擇選擇新{....

,其中新會要創建新的對象。

但是,我認爲也許仍然是這樣的方式,通過您的列表迭代的強力方法。

編輯

this might help

+0

嗨griegs我有,但我無法得到這個結構的AutoMapper工作。 – niju 2011-06-15 04:39:39

+0

啊,maye LINQ?如果不讓我知道,我會刪除我的答案 – griegs 2011-06-15 04:40:44

+0

我可以使用EF4和AutoMapper來獲取結構,但EF4生成的SQL非常大且低效。 – niju 2011-06-15 04:43:53