В настоящее время я экспериментирую с ядром .NET, создавая вымышленный книжный магазин.
В базе данных у меня 3 таблицы:
1. Книги - все книги
2. Авторы - все авторы
3. BookAuthors - посредник (отношения многие ко многим) б / п Книги и авторы
Я хочу иметь возможность читать всех текущих авторов и показывать их пользователю, когда она хочет добавить новую книгу (поэтому, если данный автор существует, она может выбрать ее).
Я пытался что-то подобное в моем BookController:
public async Task<ActionResult> Add()
{
var book = await _appDbContext.Books
.Include(b => b.BookAuthors)
.ThenInclude(a => a.Author)
.AsNoTracking()
.ToListAsync()
return View(book);
}
Однако, если я попробую это, я получу это исключение:

Если я попробую что-то вроде:
public async Task<ActionResult> Add()
{
var book = await _appDbContext.Books
.Include(b => b.BookAuthors)
.ThenInclude(a => a.Author)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.BookId == 2);
return View(book);
}
это работает, но возвращает только одного автора (конечно:))

Если бы кто-нибудь мог мне немного помочь, я был бы очень благодарен.
Спасибо!