这是我正在尝试执行的查询。
var commentActivity = project.ProjectDoc
.Select(c => c.Comment.Select(i => i.UserID))
.Distinct()
.Count();
我想要的是来自不同用户对特定项目的评论数量,但不是任何 ProjectDoc。此查询“有效”,但结果是错误的。模型是这样的,一般草图。
Project
ProjectDoc
Comment
更新:根据下面的答案,我必须更深入地了解我尝试了一些没有用的东西,所以我会把它作为引用发布。请注意这两个 SelectMany 方法。
var replyActivity = project.ProjectDoc
.SelectMany(c => c.Comment.SelectMany(r => r.CommentReply.Select(u => u.UserID)))
.Distinct()
.Count();
最佳答案
使用 SelectMany 而不是 Select
project.ProjectDoc
.SelectMany(c => c.Comment.Select(i => i.UserID))
.Distinct()
.Count()
关于C# EF Deep Lambda 非重复计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14228980/