我有一个“类型预期”的错误,我不知道为什么。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-值 –