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开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:EntityFramework Linq 获得所有数据,包括子节点
下一篇:EntityFramework Linq 查询数据获得树形结构
评论列表

发表评论

评论内容
昵称:
关联文章

PVE硬盘对应SATA口查询

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码