linq count error:DbExpressionBinding需要一个带有ResultType集合的输入表达式。参数名称:输入

时间:2013-07-16 08:23:01

标签: linq entity-framework linq-to-entities

我正在尝试运行以下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”。 有任何想法吗?感谢

1 个答案:

答案 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)
    };