2015-01-14 2 views
1

im пытается выяснить, как подсчитать все элементы от дочернего к дочернему, где столбец с именем «IsVerified» равен true. Я получил первые два ребенка (BlogPost -> Комментарии (ребенок) -> Подкомментарии (ребенок)), но я не могу понять, как считать третьего ребенкаПодсчет 3-х уровневой модели

Структура модели похожа на это на BlogPost - > Комментарии -> SubComments -> SubSubComments

Я не могу показать вам реальные модели, так вот пример:

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

Его все работает вместо третьего ребенка.

Надеюсь, вы можете мне помочь.

Спасибо.

ответ

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 будут зависеть от деталей модели, например, нужны ли отношения или нет).

+0

Спасибо. Помогли мне много – deno

Смежные вопросы