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)
这里的问题是,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。