在我们的项目中,我们有一段代码如下:
return (productEvents.Where(s => event.Equals(s.Type)));
其中event
和s.Type
都属于枚举类型EventType。
但是在运行时,它会抛出此消息的异常
无法投射类型' EventType'键入' System.Object'。 LINQ to 实体仅支持转换EDM原语或枚举类型。
答案 0 :(得分:0)
如果您将当前代码更改为:
return (productEvents.Where(s => event == s.Type));
它应该工作。当你使用Equals方法时,Linq to实体将尝试从你的表达式创建一个sql查询,当你使用Equals方法时,它将尝试转换强制转换,而LINQ to Entities doest支持它。