繁体   English   中英

LINQ to SQL找到字段的平均值?

[英]LINQ to SQL find average of field?

我有一个称为EntityRating的ViewModel,其属性之一是AverageRating。

当实例化我的ViewModel类型的新对象(称为EntityRating)时,如何根据所涉及项的Rating(值)字段(在SQL Server中)设置EntityRating.AverageRating?

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

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

我可以在数据库中平均对象的属性并将其分配给代码中的对象的属性吗?

(非常新,所以请让我知道是否有术语专用,或者是否需要更多信息)

谢谢。

LINQ具有.Average扩展方法,但是仅适用于整数。 因此,您需要做的是获取数据库中所有Rating对象的RatingField属性的IEnumerable 这可以通过使用LINQ的.Select扩展方法来实现,该方法Projects each element of a sequence into a new form .Select Projects each element of a sequence into a new form

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

这里有一个LINQ函数Average()http : //msdn.microsoft.com/en-us/library/bb399409.aspx

var er = new EntityRating()
{
  AverageRating = _db.Where(X => X.RatingID == rating.RatingID)
    .Select( x => x.RatingField).Average();
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM