C# 如何将linq与枚举类型一起使用
在我们的项目中,我们有一段代码如下所示:C# 如何将linq与枚举类型一起使用,c#,linq,enums,C#,Linq,Enums,在我们的项目中,我们有一段代码如下所示: return (productEvents.Where(s => event.Equals(s.Type))); 其中event和s.Type都属于枚举类型EventType 但在运行时,它会抛出一个包含此消息的异常 无法将类型“EventType”强制转换为类型“System.Object”。林克托 实体仅支持强制转换EDM基元或枚举类型 如果将当前代码更改为: return (productEvents.Where(s => even
return (productEvents.Where(s => event.Equals(s.Type)));
其中event
和s.Type
都属于枚举类型EventType
但在运行时,它会抛出一个包含此消息的异常
无法将类型“EventType”强制转换为类型“System.Object”。林克托
实体仅支持强制转换EDM基元或枚举类型
如果将当前代码更改为:
return (productEvents.Where(s => event == s.Type));
它应该会起作用。当您使用Equals方法时,Linq to entities将尝试从表达式创建sql查询,当您使用Equals方法时,它将尝试转换转换,并且Linq to entities不支持该转换。这里的
事件是什么?如何定义enum
你不能使用event作为变量名,你必须使用@event,因为event是C中的一个关键字#Type意味着对象的类型。我认为你要么有输入错误,要么不应该使用enum命名类型。你是否尝试过s=>s。Type==event
而使用Equals方法?你真的需要提供一个。