簡體   English   中英

LINQ 查詢,使用 Where 子句返回最大值

[英]LINQ Query, Return Max Value with Where Clause

我正在開發一個 API; 如何設置我的 linq 查詢以返回具有 where 條件的最大值?

請參閱下面的示例代碼; 我可以返回我想要的字段的最大值,但我需要在另一個列值等於某個值的地方對其進行過濾。

var lot = db.ShrinkLotData.Where(x => x.SupplierMfgLot.ToLower() == label.SupplierMfgLot.ToLower() && x.CatPattern.ToLower() == label.CatPattern.ToLower())
                    .SingleOrDefaultAsync();

    if (lot.Result == null)
    {
        var lots = db.ShrinkLotData.Where(x => x.CatPattern.ToLower() == label.CatPattern.ToLower());

        int internallot = db.ShrinkLotData.Max(x => x.InternalLotNum).Value;

        return Ok(lot);
    }

    return Ok(lot);
}

對於 internallot,我想使用與 lot 語法類似的語法返回最高值..(其中 catpattern 等於特定值)

我在看什么?

謝謝!

如果我理解正確的話,您基本上需要一起使用WhereMax ,以便您可以使用 where 條件選擇最大值。

db.ShrinkLotData.Where(x => x.CatPattern.ToLower() == label.CatPattern.ToLower()).Max(x => x.InternalLotNum).Value;

更多信息: 查詢的可組合性

...,您可以通過將方法調用鏈接在一起,以方法語法組合它們。 當您使用查詢語法編寫查詢時,這是編譯器在幕后所做的。 並且由於查詢變量不存儲查詢的結果,您可以隨時修改它或將其用作新查詢的基礎,即使在執行之后也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM