Entity framework 4 IDictionary错误:LINQ to Entities无法识别方法';布尔get_项(System.String)';方法

Entity framework 4 IDictionary错误:LINQ to Entities无法识别方法';布尔get_项(System.String)';方法,entity-framework-4,lambda,linq-to-entities,Entity Framework 4,Lambda,Linq To Entities,我的WCF实体框架代码中有这行代码 if (criteria.AccommodationTypes != null && criteria.AccommodationTypes.Count > 0) result = result.Where(a => criteria.AccommodationTypes[a.Type]); 在执行时导致此错误的 LINQ to Entities does not recognize the method 'Boolean

我的WCF实体框架代码中有这行代码

if (criteria.AccommodationTypes != null && criteria.AccommodationTypes.Count > 0)
   result = result.Where(a => criteria.AccommodationTypes[a.Type]);
在执行时导致此错误的

LINQ to Entities does not recognize the method 'Boolean get_Item(System.String)' method, and this method cannot be translated into a store expression.
调节类型是一个IDictionary。我可以看出问题在于EF无法将我的代码转换成SQL,这就是为什么它失败了,但我看不出我需要编写什么查询来实现这个功能

谢谢


Sachin

对于将来有类似问题的人,以下是我如何解决的。我在字典中创建了一个我感兴趣的所有值的列表(对应的布尔值为true的值),然后在该列表的查询中执行包含

var types = (from type in criteria.AccommodationTypes where type.Value select type.Key).ToList();

if (criteria.AccommodationTypes != null && criteria.AccommodationTypes.Count > 0)
  result = result.Where(a => types.Contains(a.Type));