我有一个餐厅评论应用程序,它有一个单独的餐厅和评论表。我已经构建了一个 MVC WebAPI,它具有一种基于餐厅 ID 传递 Restaurant 对象的方法。
作为返回对象的一部分,我想添加一个平均评分值,它基于在评论表中输入的评分值的总和除以餐厅 ID 输入的评论总数。
如果该值采用小数点后一位格式,那就太好了。
我可以使用以下代码从评论表中获取平均值(无小数位)
var sum = (from a in db.Reviews
where a.ReviewsRestaurantID.Equals(id)
select a.ReviewsRating).Sum();
var count = (from a in db.Reviews
where a.ReviewsRestaurantID.Equals(id)
select a.ReviewsRating).Count();
decimal average = sum / count;
我不确定如何将值添加到用于按 ID 方法返回餐厅的查询中(请参见下文)。有人可以帮忙将自定义平均评分值添加到下面的方法中,还是有办法在评论表上进行连接并更有效地计算值?
public IQueryable<Restaurant> GetRestaurantByID(int id)
{
var query = from a in db.Restaurants
where a.RestaurantID.Equals(id)
select a;
return query;
}