显示平均评级

时间:2014-03-05 06:15:55

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

我有两个模型类

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))

但是,我收到了以下错误

  

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

我如何退出平均值

1 个答案:

答案 0 :(得分:0)

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

  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)