LINQ具有左外连接和按SUM分组

时间:2013-11-18 14:37:20

标签: linq left-join

在我的DTO中,我有发票清单和收据清单。我需要在下拉列表中绑定发票。为此,我有以下条件

我需要绑定所有发票,发票收据的总金额小于发票金额

我的发票实体有ID,数量,金额 我的收据条目包含ID,InvoiceID,金额

我需要将收据清单与发票ID分组,并且收据金额的总和必须小于该发票清单的金额。我怎样才能使用linq或lamda doe

1 个答案:

答案 0 :(得分:1)

不确定您需要什么作为输出,但连接应该看起来像这样......

    Invoices
      .GroupJoin(Receipts, 
          r => r.ID, 
          i => i.InvoiceID, 
          (i, ir) => new {
              i.ID, 
              i.Number, 
              Amount= i.Amount, 
              RAmount = ir.Sum(r => r.Amount)}) 
    .Where(i => i.RAmount < i.Amount)
    .Select(i => new {i.Number,i.ID}) //Project however you want to get your list item