我有一個「類型預期」的錯誤,我不知道爲什麼。LinQ獲得明顯的字段與平均數錯誤
我的查詢只是將3個表連在一起,同時試圖獲得不同的包和平均評級數。
的結果應該是這樣的
| PackageName | Average Rating |
| SG | 4 |
| USA | 4 |
IQueryable<Recommendation> recommendationQuery = db.Recommendations;
IQueryable<Booking> bookingQuery = db.Bookings;
IQueryable<Package> packageQuery = db.Packages;
recommendationQuery = (from recommendationItem in recommendationQuery
join bookingItem in bookingQuery
on recommendationItem.BookingId equals bookingItem.BookingId
join packageItem in packageQuery
on recommendationItem.Booking.PackageId equals packageItem.PackageId
select recommendationItem).GroupBy(c => c.Booking.Package.PackageTitle)
.Select(c => new (c.Key, c.Average(d=>d.Rating)));
類型預計發生在。選擇(C =>新(.....
我可以知道我有錯誤的查詢?
因爲
1)I內加入我的所有3代表一起
2)假設我所有的表連接,我試圖將它們組由PACKAGENAME到不同的名稱的一個名稱
3)我試圖選擇相同包裝的評分的平均總和。
任何想法,如果有更好的解決方案呢?
'新(c.Key,c.Average(d => d.Rating))'' C#中有這樣的語法嗎?不AFAIK。你至少需要做新的推薦。您將結果存儲回可查詢的推薦內容中,因此您需要確保最後選擇的語句匹配 – user3185569
c.Key是c.Booking.Package.PackageTitle,但您只有c.Average。它不應該像c.Booking.Package.Average一樣嗎? – jdweng
即使添加新建議書後,我仍然有錯誤,我去的例子是http://stackoverflow.com/questions/17289534/c-sharp-linq-remove-duplicate-items-and-calculate-average-值 –