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 に答える