4

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

4

1 回答 1

1

你应该在'group'之后使用'by new'。我希望这能帮到您。

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)
    };
于 2014-03-12T10:04:55.817 回答