2

我正在使用 Asp.Net MVC 5 创建一个网站。

假设我有一个在线商店。每个项目都有评论。我想向用户显示每个项目的平均评分。就像是:

                var average = items.Reviews.Average(i => i.Rating);

但是,每次用户搜索项目时计算这个平均值似乎是个坏主意。所以我决定以某种方式缓存这个值。我最初的想法是创建一个属性并在每次更新表时更新它。

    public virtual IList<Review> Reviews { get; set; }

    [ScaffoldColumn(false)]
    public double AverageRating { get; set; }

在控制器中(用于创建):

item.AverageRating = (item.AverageRating * item.Reviews.Count + review.Rating) / (item.Reviews.Count + 1);

这看起来不错,但我想知道是否有更好的方法来做到这一点。或者我错误地认为每次计算平均值都会降低我网站的性能。

4

0 回答 0