簡體   English   中英

Linq 具有左連接和分組的 Join() 方法

[英]Linq Join() method with left join and grouping

我正在嘗試按照以下示例通過分組連接兩個表。 我需要做的是應用左連接。 嘗試了幾次但失敗了

 var _result = _parents
                    .Join(_childs, p => p.PID, c => c.PID, ((p, c) => new { p, c }) )
                    .GroupBy(x => new { x.p.Category })
                    .Select(y =>
                    {
                        var _projs = y.Where(z => (z.p.Completed == false || z.p.Completed is null)).Select(z => z.p.Action);
                        var _actBys = y.Where(z => (z.p.Completed == false || z.p.Completed is null)).Select(z => z.pj.ActionBy);
                        var _nas = y.Where(z => (z.p.Completed == false || z.p.Completed is null)).Select(z => z.c.Action);

                        return new
                        {

                             Item= y.Key.Category,
                            Projects = string.Join(" + ", _projs.Distinct()),
                            ActionBys = string.Join(" + ", _actBys.Distinct()),
                            NextActions = string.Join(" + ", _nas),
                        };
                    });

如果無法在此查詢上應用左連接,是否可以通過使用 GroupJoin 應用左連接來獲得相同的查詢?

我設法通過兩個步驟獲得了所需的結果。 第一個query left join Parents and Childs 第二步按照問題中提到的方式分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM