我对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
谢谢。
答案 0 :(得分:6)
是否有理由进行分组?这不行吗?
db.Authors.Select(a => new { Author, BookCount = a.Books.Count });