计算子记录,如果为空,则显示零

Nar*_*ana 6 c# linq vb.net linq-to-sql

我对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)
Run Code Online (Sandbox Code Playgroud)

此查询将给出以下结果:

             - Author A : 2 books
             - Author B : 3 books
             - Author C: 1 book
Run Code Online (Sandbox Code Playgroud)

但是在作者表中,有些作者还没有任何书籍.例如,有两位作者,作者D和作者E还没有书.

我想编写包含所有作者和书籍数量的查询,即使他们还没有任何书籍,但尚未在Books表中记录.

我希望得到像这样的东西:

             - Author A : 2 books
             - Author B : 3 books
             - Author C: 1 book
             - Author D: 0 book
             - Author E: 0 book
Run Code Online (Sandbox Code Playgroud)

谢谢.

Yak*_*ych 6

是否有理由进行分组?这不行吗?

db.Authors.Select(a => new { Author, BookCount = a.Books.Count });
Run Code Online (Sandbox Code Playgroud)