我有一个名为entityrating的视图模型,它的一个属性是averagerating。
当我实例化viewmodel(称为entityrating)类型的新对象时,如何基于相关项的评级字段(在sql server中)设置entityrating.averagerating?
我想做这样的事(显然不行):

var er = new EntityRating()
        {
            AverageRating = _db.All<Ratings>(X => X.RatingID = rating.RatingID).Average(RatingField);
        };

我可以在数据库中平均一个对象的属性,并将其分配给代码中的一个对象的属性吗?
(很新,如果有任何术语被禁用,或者您需要更多信息,请告诉我)
谢谢。

最佳答案

linq有.Average扩展方法,但是,它只对整数起作用。因此,您需要做的是在数据库中的所有IEnumerable对象上获取RatingField属性的Rating。这可以通过使用linq的.Select扩展方法来实现。

int average = _db.Ratings
                    .Where(x => x.RatingID == rating.RatingID)
                    .Select(x => x.RatingField)
                    .Average();

07-26 04:02