>> var invoicesList = (from invoices in _dbSet.Where(x => x.Account == accountName && x.Hidden == false) >> join transact in _siriusContext.Transact on invoices.InvoiceNo equals transact.InvoiceNo into InvoiceBalance >> from rt in InvoiceBalance.DefaultIfEmpty() >> select new InvoicesList >> { >> InvoiceNo = invoices.InvoiceNo, >> Account = invoices.Account, >> Hidden = invoices.Hidden, >> Descrip = invoices.Descrip1, >> Created = invoices.DateTime, >> Finalized = invoices.Finalized, >> Balance = (decimal?)rt.Extension??0 >> });>>
> var l = from inv in invoice > join ib in invoiceBalance on inv.id equals ib.id > group ib by inv.id into g > select new {InvoiceId = g.Key, Balance = g.Sum(s=>s.balance)}; >Ok, this compiles:
var invoicesList = from invoices in _dbSet.Where(x => x.Account == accountName && x.Hidden == false) let balance = (from transact in _siriusContext.Transact where transact.InvoiceNo == invoices.InvoiceNo select transact).Sum(c=>c.Extension) select new InvoicesList { InvoiceNo = invoices.InvoiceNo, Account = invoices.Account, Hidden = invoices.Hidden, Descrip = invoices.Descrip1, Created = invoices.DateTime, Finalized = invoices.Finalized, Balance = (decimal?)balance??0 };I'll try testing it now.