我想在我的餐廳評論網站上提出一個建議系統。它得到某家餐廳所有評論的平均分數,然後找到所有其他餐廳的平均評分,這些餐廳與原始餐廳有相同的美食。它會返回一份餐廳列表,其中的餐廳評分平均值高於原始餐廳。然後它將列表保存到數據庫中。返回平均值列表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