[英]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 等於特定值)
我在看什么?
謝謝!
如果我理解正確的話,您基本上需要一起使用Where
和Max
,以便您可以使用 where 條件選擇最大值。
db.ShrinkLotData.Where(x => x.CatPattern.ToLower() == label.CatPattern.ToLower()).Max(x => x.InternalLotNum).Value;
更多信息: 查詢的可組合性:
...,您可以通過將方法調用鏈接在一起,以方法語法組合它們。 當您使用查詢語法編寫查詢時,這是編譯器在幕后所做的。 並且由於查詢變量不存儲查詢的結果,您可以隨時修改它或將其用作新查詢的基礎,即使在執行之后也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.