C# LINQ到SQL查找字段的平均值?

C# LINQ到SQL查找字段的平均值?,c#,asp.net-mvc,linq-to-sql,C#,Asp.net Mvc,Linq To Sql,我有一个名为EntityRating的ViewModel,它的一个属性是Averager 当我实例化ViewModel(称为EntityRating)类型的新对象时,如何根据所讨论项目的评级字段(在SQL Server中)设置EntityRating.AverageRating 我想做这样的事情(显然不行): var er=new EntityRating() { 平均值=_db.All(X=>X.RatingID=rating.RatingID).Average(RatingField); }

我有一个名为EntityRating的ViewModel,它的一个属性是Averager

当我实例化ViewModel(称为EntityRating)类型的新对象时,如何根据所讨论项目的评级字段(在SQL Server中)设置EntityRating.AverageRating

我想做这样的事情(显然不行):

var er=new EntityRating()
{
平均值=_db.All(X=>X.RatingID=rating.RatingID).Average(RatingField);
};
我可以平均数据库中某个对象的属性并将其分配给代码中某个对象的属性吗

(非常新,所以如果有任何术语关闭,或者您需要更多信息,请告诉我)


谢谢。

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


这里有一个LINQ函数
Average()


谢谢忘记了.Select()还有一个接受Func的平均重载,因此给定一组评级,您也可以调用.Average(x=>x.RatingField)
var er = new EntityRating()
        {
            AverageRating = _db.All<Ratings>(X => X.RatingID = rating.RatingID).Average(RatingField);
        };
int average = _db.Ratings
                    .Where(x => x.RatingID == rating.RatingID)
                    .Select(x => x.RatingField)
                    .Average();
var er = new EntityRating()
{
  AverageRating = _db.Where(X => X.RatingID == rating.RatingID)
    .Select( x => x.RatingField).Average();
};