使用错误的属性名称调用了EF.Property.-嵌套Where子句-EF核心


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

相关内容

最新更新