执行左连接时,LINQ查询返回重复的行,并且右表

时间:2017-10-24 14:50:07

标签: c# linq left-join

我正在编写一个C#LINQ来执行左连接,如下所示

    from pt in context.PD
    join label in context.Labels on new { pt.LabelId, pt.SubLabelId } equals
    new { label .LabelId, label.SubLabelId } 
    into clientLabel 
    from status in clientLabel 
    select new LabelDto{
    LastStatus = pt.dubs> 0? 
    clientLabel.FirstOrDefault(s => s.type== 1).Label 
   : clientLabel.FirstOrDefault(s => s.type== 2).Label
     LastSubStatus = pt.dubs> 0 ? 
     clientLabel.FirstOrDefault(s=>s.type==1).SubLabel
   : clientLabel.FirstOrDefault(s => s.type== 2).SubLabel
    };

右表(Labels)可能有多个匹配的行,在这种情况下,将根据type(1 or 2)选择要返回的行,但上面的查询会返回与type = 1重复的第一行以及其他type = 2,其中我只想要一行type = 1 or 2

如何更改以获得所需的输出?

0 个答案:

没有答案