[英]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.