我有两个名为Conversation
和AspNetUsers
的表
因此,Conversation
有多个AspNetUsers
。
当我找到具有指定Conversation
用户且具有
AspNetUsers
时
List<Conversation> conversations = db.Conversations.Where(m =>
(m.AspNetUsers.Contains(currentUser) &&
m.AspNetUsers.Contains(receiverUser))).ToList();
我收到此错误
此上下文仅支持基本类型或枚举类型
你能帮助我吗?
答案 0 :(得分:2)
Contains
仅用于基本类型,在SQL中转换为IN
。使用Any
并提供检查条件(假设用户有Id):
List<Conversation> conversations = db.Conversations
.Where(m => (m.AspNetUsers.Any(x=> x.Id == currentUser.Id) &&
m.AspNetUsers.Any(x=> x.Id == receiverUser.Id))).ToList();