如何使用linq与枚举类型

时间:2015-12-16 02:36:31

标签: c# linq enums

在我们的项目中,我们有一段代码如下:

return (productEvents.Where(s => event.Equals(s.Type))); 

其中events.Type都属于枚举类型EventType。

但是在运行时,它会抛出此消息的异常

  

无法投射类型' EventType'键入' System.Object'。 LINQ to   实体仅支持转换EDM原语或枚举类型。

1 个答案:

答案 0 :(得分:0)

如果您将当前代码更改为:

return (productEvents.Where(s => event == s.Type)); 

它应该工作。当你使用Equals方法时,Linq to实体将尝试从你的表达式创建一个sql查询,当你使用Equals方法时,它将尝试转换强制转换,而LINQ to Entities doest支持它。