我有一个名为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);
};
我可以平均数据库中对象的属性并将其分配给代码中对象的属性吗?
(很新,所以如果有任何术语关闭,或者如果您需要更多信息,请告诉我)
感谢。
答案 0 :(得分:6)
LINQ具有.Average
扩展方法,但只适用于整数。因此,您需要做的是在数据库中的所有IEnumerable
对象上获取RatingField
属性Rating
。这可以通过使用Projects each element of a sequence into a new form
.Select
扩展方法来实现
int average = _db.Ratings
.Where(x => x.RatingID == rating.RatingID)
.Select(x => x.RatingField)
.Average();
答案 1 :(得分:1)
这里有一个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();
};