在我的实体框架的应用程序,我有一个实体,称为Invoice.cs
,这里是什么样子:LINQ查询来获取未付发票
public class Invoice : IEntity
{
public Invoice()
{
Date = DateTime.UtcNow;
CreatedOn = DateTime.UtcNow;
}
public int Id { get; set; }
public decimal Amount { get; set; }
public decimal Discount { get; set; }
public DateTime Date { get; set; }
public bool IsDeleted { get; set; }
public bool IsSaleOrderInvoice { get; set; }
public InvoiceStatus Status { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime? ModifiedOn { get; set; }
public int OrderId { get; set; }
public virtual Order Order { get; set; }
public virtual ICollection<Payment> Payments { get; set; }
}
public enum InvoiceStatus
{
Outstanding = 0,
Settled = 1,
Overpaid = 2
}
我试图查询数据库获取所有优秀的列表发票。一个优秀的发票是:
如果总对发票支付的款项的比发票金额少,那么发票是优秀。
我卡在工作了,如果发票是优秀的或不是在我的LINQ查询,目前看起来是这样的:
var outstandingInvoices = from inv in _context.Invoices
where !inv.IsDeleted && inv.Date >= startDate && inv.Date <= endDate
select inv;
startDate
和endDate
是通过在过滤结果的参数。
+让where子句 这样你就可以inv.Amount检查前总= inv.Payments.SUM(O => o.someamount) <>总 – m4ngl3r