C#EF Deep Lambda Distinct Count Query

Jed*_*ant 4 c# asp.net lambda entity-framework

这是我想要的查询.

var commentActivity = project.ProjectDoc
        .Select(c => c.Comment.Select(i => i.UserID))
        .Distinct()
        .Count();
Run Code Online (Sandbox Code Playgroud)

我想要的是来自特定项目的不同用户的评论数量,但是任何ProjectDoc.这个查询"有效",结果是错误的.这个模型就像这样,一般都是草绘的.

 Project
      ProjectDoc
           Comment
Run Code Online (Sandbox Code Playgroud)

更新:我必须更深入一级,根据下面的答案,我尝试了一些不起作用的事情,所以我会发布这个作为参考.请注意两个SelectMany方法.

 var replyActivity = project.ProjectDoc
      .SelectMany(c => c.Comment.SelectMany(r => r.CommentReply.Select(u => u.UserID)))
      .Distinct()
      .Count();
Run Code Online (Sandbox Code Playgroud)

ryu*_*ice 5

使用SelectMany而不是Select

project.ProjectDoc
        .SelectMany(c => c.Comment.Select(i => i.UserID))
        .Distinct()
        .Count()
Run Code Online (Sandbox Code Playgroud)