我想在我的餐厅评论网站上提出一个建议系统。它得到某家餐厅所有评论的平均分数,然后找到所有其他餐厅的平均评分,这些餐厅与原始餐厅有相同的美食。它会返回一份餐厅列表,其中的餐厅评分平均值高于原始餐厅。然后它将列表保存到数据库中。返回平均值列表LINQ
我试图在linq中创建查询,但我一直在接收错误,如Cannot implicitly convert type 'System.Collections.Generic.List<int>' to 'int'
或查询结果是错误的。
任何帮助将是伟大的。
错误行
var getrestaurantaverage = db.Reviews
.Where(r => r.RestaurantId = getrestaurantsid)
.Average(r => r.score);
建议功能
var averagescore = db.Reviews
.Where(r => r.RestaurantId == review.RestaurantId)
.Average(r => r.score);
var getrestaurantsid = (from r in db.Reviews
where r.Cuisine == review.Cuisine
select r.RestaurantId).ToList();
var getrestaurantaverage = db.Reviews
.Where(r => r.RestaurantId = getrestaurantsid)
.Average(r => r.score);
var choices = (from r in db.Reviews
where getrestaurantaverage >= averagescore
select r.RestaurantId).ToList();
foreach (var item in choices)
{
var suggestion = new Suggestion()
{
reviewid = review.id,
Userid = review.UserId,
restaurantid = item
};
db.Suggestions.Add(suggestion);
db.SaveChanges();
}
return RedirectToAction("Index", "Review");
哪条线给你一个错误? – MarcinJuraszek