LINQ to Entities无法识别方法'Boolean Exists(System.Predicate`1 [Entities.Connection])'方法

che*_*enk 4 c# linq linq-to-entities entity-framework

我试图创建满足两个条件之一的笔记列表。1.与创建的用户匹配。2.或与连接链接。

使用以下代码将返回异常。我知道对于Linq来说,表达是很常见的。但是我的问题是,可以使用哪些替代方法代替现有方法?

“ LINQ to Entities无法识别方法'Boolean Exists(System.Predicate`1 [Entities.Connection])',并且该方法无法转换为商店表达式。”

_context.Notes
        .Include(t => t.Connections)
        .Where(t => t.CreatedUserId == userId || t.Connections.ToList().Exists(c => c.UserId == userId))
Run Code Online (Sandbox Code Playgroud)

Ada*_*m T 6

这里的问题是,Entity Framework无法理解您的C#代码,并且无法解析.Exists()。

一种替代的编写方式如下:

_context.Notes
    .Include(t => t.Connections)
    .Where(t => t.CreatedUserId == userId || t.Connections.Any(c => c.UserId == userId));
Run Code Online (Sandbox Code Playgroud)

如果任何连接的UserId等于userId,则.Any()将返回true。