由於比較一些幫助,得到了下面的LINQ to SQL工作:MVC連接到SQL GROUP BY和更早的
decimal? foodCount =
dbContext.fad_userFoods
.Where(uf => uf.dateAdded == thisDate && uf.userID == thisGuid)
.Select(uf => uf.quantityAmount)
.DefaultIfEmpty().Sum();
然後,我會檢查,看看是否foodCount超過一定數量和格式化輸出因此。
但我意識到這有點簡單。用戶可以在一天中多次輸入相同的食物,例如,一個蘋果吃早餐,然後一個蘋果吃下午點心。
Googling it我遇到過包括GroupBy。在這種情況下GroupBy foodid。但是我無法使其正常工作。 (我來自一個web表單的背景,我想建立一個存儲過程來這樣做,所以MVC和LINQ to SQL是新的我!)
所以我的表達,現在讀這樣的:
decimal? foodCount =
dbContext.fad_userFoods
.Where(uf => uf.dateAdded == thisDate && uf.userID == thisGuid)
.GroupBy(uf=>uf.foodID).Select(uf => uf.quantityAmount)
.DefaultIfEmpty().Sum();
但我收到一封Visual Studio消息,告訴我「'IGrouping'不包含'quantityAmount'的定義,並且沒有可以找到接受類型'IGrouping'的第一個參數的擴展方法'quantityAmount'(您是否缺少使用指令或裝配參考?)
quantityAmount在沒有GroupBy條款的情況下被接受,那麼爲什麼現在就抱怨它?
這是我最後一次拍攝的那一天,因爲我沒有馬上回復你而道歉。但是要感謝所有花時間幫助的人。
你能否解釋一下是什麼問題的原始查詢,你想用第二個來實現什麼? –
你有沒有試過類似的東西? http://stackoverflow.com/questions/33362478/ef-groupby-does-not-contain-a-definition-for-brieftitle-and-no-extension-meth –
這是抱怨,因爲你的記錄現在在組。如果你想到一個rolodex,那麼你對每個第一個字母有「組」的地方,你不能要求例如在標籤「A」中的人的電話號碼是什麼。標籤「A」沒有人,它有一組人。你需要哪一個電話號碼。希望有所幫助。我強烈建議你看看一個免費(ish)程序[LINQPad](https://www.linqpad.net/),它可以幫助你可視化你在查詢時得到的結果。 –