我的存储过程以下列格式返回数据
Hierarchy
表:
ParentId ChildId ParentName ChildName
1 9 AAA BBB
1 10 AAA CCC
1 11 AAA DDD
此数据可以链接到主表,该主表包含父和子实体的其他属性,例如Name
等。
Person
表:
Id Name Age
1 AAA 40
Id
表格中的 Person
与Hierarchy
表格相关联。
我需要将其转换为以下
Public Class HierarchyData
{
public Person Parent {get;set;}
List<Person> Children {get;set}
}
我正在调用存储过程并将输出存储在var。
中this.context.ExecuteQuery<Hierarchy>(MyStoreProc, Paramerters);
Public Class Hierarchy
{
public int ParentId {get;set;}
public int ChildId {get;set;}
}
您能否建议如何将其转换为List<HierarchyData>
?
答案 0 :(得分:1)
说,列表的类型为List<Hierarchy>
。然后您可以运行以下代码:
var hierarchyDataList =
list
.GroupBy(x => x.ParentId)
.Select(g => new HierarchyData
{
Parent = new Person
{
Id = g.Key
Name = g.First().ParentName // NAME FIELD ADDED
},
Children = g.Select(x => new Person
{
Id = x.ChildId,
Name = x.ChildName
}
)
}
);
Name
的每个Parent
属性中添加了 HierarchyData
字段。