【问题标题】:C# Linq To Entities (SkipWhile not working)C# Linq To Entities(SkipWhile 不工作)
【发布时间】: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;
}

【问题讨论】:

标签: c# linq


【解决方案1】:

你可以试试Where子句。

    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;
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多