gpt4 book ai didi

c# - LinQ 获取具有平均数字误差的不同字段

转载 作者:行者123 更新时间:2023-11-29 11:01:24 25 4
gpt4 key购买 nike

我遇到了“预期类型”错误,我不知道为什么。

我的查询只是将 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)));

预期的类型出现在 .Select(c => new (.....

请问我是否查询错误?

因为

1)我内部将所有 3 个表连接在一起

2)假设我已连接所有表,我尝试按 PackageName 将它们分组,以将名称区分为一个名称

3)我尝试选择同一包的评分的平均总和。

知道是否有更好的解决方案吗?

database class diagram

Solution error

最佳答案

您需要将结果存储回新变量以匹配您的新类型:

var results = 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
group recommendationItem
by recommendationItem.Booking.Package.PackageTitle
into grp
select new
{
PackageName = grp.Key,
AverageRating = grp.Average(d => d.Rating)
};

关于c# - LinQ 获取具有平均数字误差的不同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com