4

これは私がやろうとしているクエリです。

var commentActivity = project.ProjectDoc
        .Select(c => c.Comment.Select(i => i.UserID))
        .Distinct()
        .Count();

私が欲しいのは、特定のプロジェクト、ただし任意のProjectDocに関する個別のユーザーからのコメントの数です。このクエリは「機能」し、結果は間違っています。モデルはこのようなもので、一般的にスケッチされています。

 Project
      ProjectDoc
           Comment

更新:以下の回答に基づいて、1レベル深くする必要がありました。うまくいかなかったいくつかのことを試したので、これを参照として投稿します。2つのSelectManyメソッドに注意してください。

 var replyActivity = project.ProjectDoc
      .SelectMany(c => c.Comment.SelectMany(r => r.CommentReply.Select(u => u.UserID)))
      .Distinct()
      .Count();
4

2 に答える 2

5

Selectの代わりにSelectManyを使用する

project.ProjectDoc
        .SelectMany(c => c.Comment.Select(i => i.UserID))
        .Distinct()
        .Count()
于 2013-01-09T05:52:47.083 に答える
0
 var data =   (from con in project.ProjectDoc
               select new 
              {
                 CommentCount=project.Comment.Count(x=>x.UserID==con.UserID)

              }).ToList();

これはあなたを助けると思います。

于 2013-01-09T06:01:51.157 に答える