归还孩子和子孩子而没有子数组Linq

时间:2019-07-17 08:19:39

标签: c# arrays json entity-framework linq

我有一个linq查询,用于返回用户/雇员及其相应的主管。

List<OrgChartViewModel> OrgChart = new List<OrgChartViewModel>();
                    var userlist = (from u in users
                                    select new OrgChartViewModel
                                    {
                                        id = u?.id.ToString(),
                                        pid = u?.pid.ToString(),
                                        name = u?.name,
                                        title = u?.title,
                                        img = u?.img
                                    }).OrderBy(x => x.name).ToList();
                    OrgChart.AddRange(userlist);
                    return Json(OrgChart.DistinctBy(x => x.id));

但是,我需要一个查询,该查询返回主管和他们的孩子以及他们的子孩子,而没有子数组/嵌套数组。

我尝试过的:

List<OrgChartViewModel> OrgChart = new List<OrgChartViewModel>();
                var userlist = (from u in users
                                select new OrgChartViewModel
                                {
                                    id = u?.id.ToString(),
                                    pid = u?.pid.ToString(),
                                    name = u?.name,
                                    title = u?.title,
                                    img = u?.img
                                }).OrderBy(x => x.name).ToList();
                OrgChart.AddRange(userlist);

                foreach (var ul in userlist)
                {
                    var userlist2 = (from u in users
                                     select new OrgChartViewModel
                                     {
                                         id = u?.id.ToString(),
                                         pid = u?.pid.ToString(),
                                         name = u?.name,
                                         title = u?.title,
                                         img = u?.img
                                     }).Where(x => x.pid == ul.id).OrderBy(x => x.name).ToList();
                    OrgChart.AddRange(userlist2);
                }
                return Json(OrgChart.DistinctBy(x => x.id));

但是,这只会返回子孩子的第一层。我想要实现的是不带子数组的情况下返回无限个子孩子层。

0 个答案:

没有答案