【问题标题】:Displaying average rating显示平均评分
【发布时间】:2014-03-05 06:15:55
【问题描述】:

我有以下两个模型类

public partial class Items
{
    public Items()
    {
        this.Items_RATINGS = new HashSet<Items_RATINGS>();
    }

    public int ITEMID { get; set; }
    public string ITEMNAME { get; set; }

    public virtual ICollection<Items_RATINGS> Items_RATINGS { get; set; }
}

public partial class Items_RATINGS
{
    public int ItemsID { get; set; }
    public byte ItemsRATING { get; set; }
    public string COMMENTS { get; set; }

    public virtual Items Items { get; set; }
}

在控制器调用中,我添加了

return View(db.Items.Include(c => c.Items_RATINGS).ToList());

在视图中,我正在调用

Html.DisplayFor(modelItem => item.Items_RATINGS.Average(dr => dr.ItemsRATING))

但是,我收到以下错误

模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。

如何提取平均值

【问题讨论】:

    标签: c# entity-framework linq-to-entities asp.net-mvc-5 average


    【解决方案1】:

    最好计算平均值,然后传递给视图,所以在你的模型中你可以有这个:

      private ICollection<Items_RATINGS> _Items_RATINGS ;
    
      public double Items_RATINGS
        {
            get { return _Items_RATINGS.Average(c => c.ItemsRATING); }
            set;
        }
    

    然后在视图中绑定Items_RATINGS:

    Html.DisplayFor(modelItem => item.Items_RATINGS)
    

    【讨论】:

    • 我现在收到以下错误:附加信息:值不能为空。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    相关资源
    最近更新 更多