0
我對LINQ to Entities有以下問題。我從DB中選擇記錄,將它們分組,然後按Id降序排列。然後,我想選擇第一項,但只有當數量是!= 0時。我想因爲我必須使用FirstOrDefault,我得到錯誤的結果,但不知道如何糾正它。LINQ to Entities GroupBy,OrderByDescending,FirstOrDefault
DB
現在,這個查詢會給我ID的2和1編組和4 「分組」。我需要的是僅在Quantity =!= 0的情況下選擇FIRST項目,但我不確定如何獲取。
data = DbContext.Items.Where(x.WarehouseId == 1)
.GroupBy(x => x.ItemCode, (key, g) => g.OrderByDescending(y => y.Id).FirstOrDefault())
.OrderBy(parameters.SortExpression)
.Skip(parameters.Start)
.Take(parameters.Length);
如果WarehouseID是1,我只需要獲取ID爲4的行。任何幫助表示讚賞。
編輯:首先我需要groupBy ItemCode,然後我將有兩個組爲我的情況。第一組爲1和2,第二組爲4。然後我通過Id降序來訂購它們,我得到(2,1),(4)。然後我需要從組中選擇第一個,但只有當數量是!= 0時。如果數量爲零,我不想從組中選擇任何內容。
圖片來澄清我需要什麼。我卡上的最後一步採取FristFrom每個組只有數量= 0
首先我需要GROUPBY ItemCode ,那麼我會爲上面的情況設置兩個組。第一組爲1和2,第二組爲4。然後我通過Id降序來訂購它們,我得到(2,1),(4)。然後我需要首先選擇,但只有當數量是!= 0時。如果數量爲零,我不想從組中選擇任何東西。 –
在你的第二種情況下,當你得到2和4時,你只能得到Ids 1和4,看到2有數量0並且忽略它,所以你最後只剩下4。 –