C#Linq To Entities(SkipWhile not working)
问题描述:
我正在计算基于股票交易的库存,但我想排除那些发票未标记为的股票交易IsStocked这是Nullable布尔值,我试图通过使用SkipWhile这是行不通的,它简单地计算所有交易的无论是发票IsStocked属性为true或false:C#Linq To Entities(SkipWhile not working)
这里是我的尝试:
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;
}
答
您可以试试其中条款。
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().
Where(c => c.InvoiceItems.Any(q => q.Invoice.IsStocked == true)).Sum(q => q.Quantity);
}
catch (Exception)
{
res = 0;
}
return res;
}
请检查http://*.com/questions/2527047/linq-is-skipwhile-broken,您对SkipWhile的期望可能不同 –