仅包括具有特定过滤的相关 ICollection 中的那些

Include only those in a related ICollection with specific filtering

我有一个 Bill 模型,它有如下关联的付款和读数:

public class Bill
{
    [Key]
    public Int64 BillID { get; set; }

    .............

    public virtual ICollection<Reading> Readings{ get; set; }

    public virtual ICollection<Payment> Payments { get; set; }
}

在我的 BillsController 中,索引视图上有以下代码:

public ActionResult Index()
{
        return View(db.Bills.ToList());
}

在控制器级别是否有任何方法可以过滤掉读数,例如读数为 0 从而表明存在问题?

我不太确定我是否正确地解释了你的问题,但听起来你想要 select 所有账单并且只包括该账单上的读数,如果他们的金额 属性 更大大于 0。如果是这种情况,下面的代码应该可以为您完成。

var billsWithFilteredReadings = db.Bills.Include(b => b.Readings.Where(r => r.Amount > 0));

编码愉快。