EntityFramework Linq 查询数据获得树形结构
EntityFramework EF Linq 一个有上下级别的数据列表,查询数据并转换为树形结构对象
代码如下:
public List<TreeData> GetTreeData(string rowID) { var data = entities.data_ArchiveCategoryGroup .Where(w => w.RowID != rowID) .Select(s => new TreeData() { RowID = s.RowID, ParentRowID = s.ParentRowID, GroupName = s.GroupName, Sort = s.Sort }).ToList(); List<TreeData> result = new List<TreeData>(); foreach (var p in data.Where(w => w.ParentRowID == "").OrderBy(o => o.Sort)) { result.Add(new TreeData() { RowID = p.RowID, ParentRowID = p.ParentRowID, GroupName = p.GroupName, Sort = p.Sort, Childs = GetChildData(data, p.RowID) }); } return result; } public List<TreeData> GetChildData(List<TreeData> dataList, string id) { List<TreeData> nodeList = new List<TreeData>(); var children = dataList.Where(t => t.ParentRowID == id); foreach (var o in children) { o.Childs = GetChildData(dataList, o.RowID); nodeList.Add(o); } if (nodeList.Count == 0) return null; else return nodeList; } public class TreeData { public string RowID { get; set; } public string ParentRowID { get; set; } public string GroupName { get; set; } public int Sort { get; set; } public List<TreeData> Childs { get; set; } }
GarsonZhang www.yesdotnet.com
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post YES开发框架