计数3级模型

时间:2015-01-14 15:49:52

标签: asp.net-mvc entity-framework

我试图找出如何计算从孩子到孩子的所有项目,其中一个名为" IsVerified"是真的。我得到了前两个孩子(BlogPost - >评论(孩子) - > SubComments(孩子))但我无法弄清楚如何计算第三个孩子

模型的结构类似于此 BlogPost - >评论 - >子评论 - > SubSubComments

我无法向您展示真实模型,所以这里是一个例子:

https://gist.github.com/anonymous/c357bfdd158cc6a392d9

它全部工作而不是第三个孩子。

我希望你能帮助我。

感谢。

1 个答案:

答案 0 :(得分:2)

类似的东西:

// Don't need ToList here, lazy is fine
var blogs = db.BlogPosts.Include("Comments.SubComments.SubSubComments");

var count = blogs.SelectMany(b => b.Comments)
                 .Where(c => c.IsVerified)
                 .SelectMany(c => c.SubComments)
                 .Where(sc => sc.IsVerifier)
                 .Count();

将在经过验证的子评论中获得经过验证的子评论的数量。

因为我没有在初始表达式上使用ToList,所以应该将它们全部转换为SQL并在服务器上执行(SQL的细节将取决于模型的细节,例如关系是否为是否需要)。