【发布时间】:2017-09-11 00:48:32
【问题描述】:
在我的实体框架应用程序中,我有一个名为 Invoice.cs 的实体,如下所示:
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是传入过滤结果的参数。
【问题讨论】:
-
+ let total = inv.Payments.SUM(o=>o.someamount) 在 where 子句之前,这样您就可以检查 inv.Amount total
标签: c# entity-framework linq