我正在尝试运行以下linq查询:
var entries = from entry in _db.Entries
select new CommentSummary()
{
NumberOfComments = entry.Message.Count(),
UserName = entry.Name
};
当我执行查询时,它会抛出上述错误: Message = DbExpressionBinding需要一个带有ResultType集合的输入表达式。 参数名称:输入
如果我使用
var entries = from entry in _db.Entries
group entry by entry.Name into groupedByName
orderby groupedByName.Count() descending
select new CommentSummary
{
NumberOfComments = groupedByName.Count(),
UserName = groupedByName.Key
};
没有错误,但是评论没有正确计算:所有NumberOfComments值都是“1”,并且应该有一些“1”和一些“0”。 有任何想法吗?感谢
答案 0 :(得分:1)
你应该使用新的'在' group'之后。我希望这会对你有所帮助。
var entries = from entry in _db.Entries
group entry by new { entry.Name } into groupedByName
select new
{
groupedByName.Key.Name,
NumberOfComments = groupedByName.Count(x => x.Name != null)
};