实体LINQ上的多对多错误“LINQ to Entities无法识别方法'布尔包含......”

时间:2010-04-14 20:10:02

标签: linq linq-to-entities

我有2个表(用户和角色),它们在关系数据库中被映射为多对多。当我导入到实体数据内容时,它们仍然保持相同的关系。

由于它们在实体中被映射为多对多,我可以访问

Users.RoleCollection 
or
Roles.UserCollection

然而,当我执行这个LINQ查询时,我得到“LINQ to Entities无法识别方法'Boolean Contains ...方法,并且此方法无法转换为商店表达式。”

var result (from a in Users
            from b in Roles
            where a.RoleCollection.Contains(b)
            select a);

我想我必须做错事......请帮忙。

1 个答案:

答案 0 :(得分:3)

只需使用任何......

     where a.RoleCollection.Any(x=>x.ID==b.ID)

     where a.RoleCollection.Any(x=>x==b)