EF.Property вызван с неправильным именем свойства. - Вложенное предложение Where - EF Core - PullRequest
0 голосов
/ 08 мая 2020
List<Invitation> a = dbContext.invitations
                .Include(i=>i.ArticleReviews)
                .Include("Article.AuthorsAndOpposedReviewers.User")
                .Include(i=>i.User)
                .Where(i=>i.Article.AuthorsAndOpposedReviewers.Where(a=>a.User.Email == User.Identity.Name && a.role == "coAuthor") != null)
                .Where(i=>i.status == "reviewSubmitted").ToList();

в приведенном выше запросе Article.AuthorsAndOpposedReviewers - это список, поэтому для загрузки связанных объектов я использую жестко закодированную строку Article.AuthorsAndOpposedReviewers.User.

теперь ошибка EF.Property called with wrong property name. возникает, когда я использую где внутри другого, где загрузить данные для текущего вошедшего в систему пользователя

, ошибка выдачи которого:

.Where(i=>i.Article.AuthorsAndOpposedReviewers.Where(a=>a.User.Email == User.Identity.Name && a.role == "coAuthor") != null)

1 Ответ

0 голосов
/ 09 мая 2020

Вместо использования вложенного where используйте Any Clause, как это

.Where(i=>i.Article.AuthorsAndOpposedReviewers.Any(a=>a.User.Email == User.Identity.Name && a.role == "coAuthor"))

Оператор ANY возвращает true, если любое из значений подзапроса соответствует условию

...