将平面数据结构转换为层次结构使用c#对象#
问题描述:
我有以下平面数据结构。将平面数据结构转换为层次结构使用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
任何帮助将不胜感激。
问候 二重
答
你有没有看AutoMapper?
不知道这是你需要什么,但这是我用来经常从一种格式转换为对象模型。
另一种选择可能是使用LINQ查询您拥有的数据并为您创建模型。
我想你可以说这样的话,这是未经测试的;
从DataList的选择选择新{....
,其中新会要创建新的对象。
但是,我认为也许仍然是这样的方式,通过您的列表迭代的强力方法。
编辑
嗨griegs我有,但我无法得到这个结构的AutoMapper工作。 – niju 2011-06-15 04:39:39
啊,maye LINQ?如果不让我知道,我会删除我的答案 – griegs 2011-06-15 04:40:44
我可以使用EF4和AutoMapper来获取结构,但EF4生成的SQL非常大且低效。 – niju 2011-06-15 04:43:53