【发布时间】:2016-12-31 18:02:41
【问题描述】:
我正在根据库存交易计算库存,但我想排除那些发票未标记为 IsStocked 的库存交易,这是 Nullable Boolean,我试图通过使用 SkipWhile 来实现这一点 这不起作用,它只是计算所有交易,无论它的发票 IsStocked 属性是真还是假:
这是我尝试过的:
public double GetInStockQuantity(Warehouse warehouse, Entities db)
{
double res;
try
{
res = db.Stocks.AsNoTracking().Where(c => c.Product.ID == ID && c.WarehouseID == warehouse.ID).
AsNoTracking().AsEnumerable().
SkipWhile(c => c.InvoiceItems.Any(q => q.Invoice.IsStocked == false)).Sum(q => q.Quantity);
}
catch (Exception)
{
res = 0;
}
return res;
}
【问题讨论】:
-
请查看stackoverflow.com/questions/2527047/linq-is-skipwhile-broken,您对 SkipWhile 的期望可能会有所不同