在此上下文中,ICollection仅支持原始类型或枚举类型

时间:2015-08-27 19:06:29

标签: c# asp.net asp.net-mvc

我有两个名为ConversationAspNetUsers的表 因此,Conversation有多个AspNetUsers
当我找到具有指定Conversation用户且具有

AspNetUsers
List<Conversation> conversations = db.Conversations.Where(m => 
                                   (m.AspNetUsers.Contains(currentUser) && 
                                    m.AspNetUsers.Contains(receiverUser))).ToList();

我收到此错误

  

此上下文仅支持基本类型或枚举类型

你能帮助我吗?

1 个答案:

答案 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();