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();
在上面的查询中CCD_ 1是一个列表,以便加载相关对象i使用硬编码字符串CCD_。
现在,当我使用另一个where内部的where为当前登录的用户加载数据时,会出现错误EF.Property called with wrong property name.
抛出错误为的语句
.Where(i=>i.Article.AuthorsAndOpposedReviewers.Where(a=>a.User.Email == User.Identity.Name && a.role == "coAuthor") != null)
不要使用嵌套的where,而是使用像这样的Any子句
.Where(i=>i.Article.AuthorsAndOpposedReviewers.Any(a=>a.User.Email == User.Identity.Name && a.role == "coAuthor"))
如果任何子查询值满足条件,ANY运算符将返回true