【问题标题】:linq count error: DbExpressionBinding requires an input expression with a collection ResultType. Parameter name: inputlinq 计数错误:DbExpressionBinding 需要具有集合 ResultType 的输入表达式。参数名称:输入
【发布时间】:2013-07-16 08:23:00
【问题描述】:

我正在尝试运行以下 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
    };

没有错误,但没有正确计算 Comments:所有 NumberOfComments 值都是“1”,应该有一些“1”和一些“0”。 有任何想法吗?谢谢

【问题讨论】:

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


    【解决方案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-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多