我有一个名为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();