Ограничьте результаты подвышенной таблицей, что ее родитель имеет несколько результатов на EF CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ограничьте результаты подвышенной таблицей, что ее родитель имеет несколько результатов на EF Core

Сообщение Anonymous »

Извините, так как название не может быть описательным по вопросу.

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»