0

3 つのテーブルを結合した結果を返す Linq を作成しようとしています。

「Book」、「Author」エンティティがあります。1 冊の本に多くの著者がいて、1 人の著者が多くの本を書くことができる

本の名前とその本を書いた著者のリストを持つ「BooksAuthors」オブジェクトを取得したいと考えています。私の現在のlinqは(しかし、何も返さない、NullPointer例外が発生する)

BooksAuthors = db.tblBooks.SelectMany(
                    book => book.Authors,
                    (book, author) => new Books
                    {
                        BookID = book.BookID,
                        BookName = book.BookName,
                        Authors = book.Authors
                    }),

その他のクラス:

public class Author
{
    public virtual int AuthorID { get; set; }
    public virtual string AuthorName { get; set; }
    public virtual ICollection<Book> Books { get; set; }
}
public class Book
{
    public virtual int BookID { get; set; }
    public virtual string BookName { get; set; }
    public virtual ICollection<Author> Authors { get; set; }
}


public class Books
    {
        public int BookID { get; set; }
        public string BookName { get; set; }
        public IEnumerable<Author> Authors { get; set; }
    }
public class LibraryDb : DbContext
{        
    public DbSet<Book> tblBooks { get; set; }
}
4

1 に答える 1