LINQ比较2个表,只返回上一个项目,而不是全部

时间:2013-01-24 12:44:12

标签: c# linq

所以...每个工作站都有许多发票,My Linq语句将工作站加入发票并将它们全部进行比较。 我只希望我的LINQ选择最新的发票(为该工作站生成的上一张发票)。

对所有发票进行比较,并且将返回< = 1年前今天的任何发票(针对该工作站)。我只希望它返回,如果每个工作站的先前发票是<今天12个月。

在之前的Q的帮助下,这就是我的所有......

   DateTime OneYearAgo = DateTime.Now.AddYears(-1);

        var SelectedObject =
            (from workstation in db.Work_Sites
             join invoice in db.Invoices on workstation.id equals invoice.Site_Id
              where invoice.Invoice_Date <= OneYearAgo
             select workstation).Distinct().ToList();

1 个答案:

答案 0 :(得分:1)

  DateTime OneYearAgo = DateTime.Now.AddYears(-1);

  var SelectedObject =
            (from workstation in db.Work_Sites
             join invoice in db.Invoices.Where(i => i.Invoice_Date <= OneYearAgo)
                   on workstation.id equals invoice.Site_Id into g
             where g.Any()
             select workstation).ToList();

这将返回一年前至少有一张发票的工作站。