2015-08-27 37 views
2

我有两个表,名为ConversationAspNetUsers
因此,一个Conversation有多个AspNetUsers
当我发现已经指定AspNetUsers用户
只有原始类型或枚举类型在此上下文中受支持ICollection

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

我得到这个错误

只有基本类型或枚举类型Conversation在这方面的支持

你可以帮我吗?

回答

2

Contains仅适用于原始类型,在SQL中转换为IN。使用Any和检查(假设用户有标识)提供了条件:

List<Conversation> conversations = db.Conversations 
    .Where(m => (m.AspNetUsers.Any(x=> x.Id == currentUser.Id) && 
        m.AspNetUsers.Any(x=> x.Id == receiverUser.Id))).ToList(); 
+0

天上,我知道了。非常感谢 – KlynkC

相关问题