Linq to sql 将带有group by的SQL查询转换为LINQ查询

Linq to sql 将带有group by的SQL查询转换为LINQ查询,linq-to-sql,Linq To Sql,我正在努力将SQL查询复制到LINQ中。 有人能帮忙吗 SQL: 林克:到目前为止: var invoices = from inv in db.TblInvoices join invLine in db.TblInvoiceLines on inv.LngID equals invLine.LngInvoiceID where inv.IntStatus != 0 where inv.LngPersonID == personID group inv by

我正在努力将SQL查询复制到LINQ中。 有人能帮忙吗

SQL:

林克:到目前为止:

var invoices = from inv in db.TblInvoices
    join invLine in db.TblInvoiceLines on inv.LngID equals invLine.LngInvoiceID
    where inv.IntStatus != 0
    where inv.LngPersonID == personID
    group inv by  new {inv.LngID,inv.DtTimeStamp,inv.StrReference,inv.FltTotalValue} into newInv
问题的一部分是我想做一个

select new Invoice(){
}
并建立我的自定义发票对象,但我在newInv中看不到任何属性


有人能提供建议吗?

我现在没有时间给出完整的答案,但是:

  • 要获取密钥的属性,请使用
    newInv.key.streference
  • 要获取聚合(例如最大值),请使用
    newInv.max(x=>x.projectd)

希望这足够让你走了。基本上,
newInv
将是一组条目,带有一个关联的键(这是您分组的依据)。

当然,另一个选项是执行一个简单的LINQ查询,然后执行一个invoices.GroupBy(x=>new{x.InvoiceID,x.InvoiceDate,x.Reference,x.TotalValue});
select new Invoice(){
}