的定义,我有using System.Linq;
所以我想我的语法是错误的,但我不能看到它不包含“点心”
public void Count()
{
var count = _context.Objects
.Select(i => new { i, ViewCount = i.Relations.Sum(j => j.ViewCount) });
}
的定义,我有using System.Linq;
所以我想我的语法是错误的,但我不能看到它不包含“点心”
public void Count()
{
var count = _context.Objects
.Select(i => new { i, ViewCount = i.Relations.Sum(j => j.ViewCount) });
}
是i.Relations
已经由类型的i.Relations
确定的成员。由于您包含using System.Linq;
,迄今为止最可能的解释是i.Relations
被声明为某种类型,它不会执行IEnumerable<T>
。 i.Relations
可能是各种各样的东西,但它听起来像编译器告诉你有一件事情不是。
关系属性应该是一个IEnumerable。请确保您有
using System.Linq
句话,因为这是谁带来的总和扩展方法
这是问题的第一行 –
你很可能试图总结字符串或任何其他对象值集合。
请尝试在sum之前转换该值,您必须确保j.ViewCount始终为整数,否则您会遇到异常。请尝试下面的代码。
public void Count()
{ 变种计数= _context.Objects 。选择(I =>新的{I,观看次数= i.Relations.Sum(J => Convert.ToInt32(j.ViewCount))}); }
您是否需要i.Relations上的.ToList()? –
关系是IEnumerable还是不是?如果不是,那么你不能使用'Sum'方法或任何其他的LINQ方法。 –
Christos
如果'i.Relations'没有名为'Sum'的方法或扩展,那很可能与'i.Relations'的类型有关。你认为这里的任何人都知道“i.Relations”的类型比你多吗?或甚至一样多? –