Код: Выделить всё
SELECT * FROM Authors A
LEFT JOIN Books B ON B.AuthorId = A.Id
LEFT JOIN BookReviews R ON R.BookId=B.Id AND R.Edition=B.Edition
WHERE A.Id = @AuthorId AND R.Approved='Y'
< /code>
Здесь заключается в том, что на автора есть несколько книг, и мне нужно поместить ограничение в предложении «Где столб» на столбце на дочерней таблице, которая также имеет несколько результатов.var results = await context.Authors
.Include(i => i.Books)
.ThenInclude(i => i.BookReviews)
.FirstOrDefaultAsync(x => x.Id == author && x.Books.....
< /code>
И там я не могу продолжить с .bookReview.Approved == "y" < /code> Потому что книги - это коллекция.
Навигационное свойство для этих двух таблиц создается в объекте Books. (Не спрашивайте меня)builder.HasOne(s => s.BookReview)
.WithOne(d => d.Book)
.HasForeignKey(d => new { d.BookId, d.Edition })
.HasPrincipalKey(s => new { s.Id, s.Edition })
.IsRequired(false);
Подробнее здесь: https://stackoverflow.com/questions/797 ... sults-on-e