Подсчитать дочернюю запись и показать ноль, если пуст - PullRequest
6 голосов
/ 04 июля 2011

Я в порядке с C # и VB.NET

У меня есть две таблицы. Авторы и Книги. Это отношение один ко многим, авторы книг. Я пишу запрос, чтобы показать, сколько книг у каждого автора.

Я написал следующий запрос:

Dim query = From oa In db.Authors _
         Group oa By oa.Book Into grouping = Group _
         Select Author = Book, Count = grouping.Count(Function(s) s.AuthorId)

Этот запрос даст следующий результат:

             - Author A : 2 books
             - Author B : 3 books
             - Author C: 1 book

Но в таблице авторов есть некоторые авторы, у которых еще нет книг. Например, есть два автора, Автор D и Автор E, которые еще нет книг

Я хочу написать запрос, который включает всех авторов и количество других книг, хотя у них еще нет ни одной книги, пока нет записей в таблице Книги.

Я хочу получить что-то вроде этого:

             - Author A : 2 books
             - Author B : 3 books
             - Author C: 1 book
             - Author D: 0 book
             - Author E: 0 book

Спасибо.

1 Ответ

6 голосов
/ 04 июля 2011

Есть ли причина для группировки?Разве это не работает?

db.Authors.Select(a => new { Author, BookCount = a.Books.Count });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...