Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将linq与枚举类型一起使用_C#_Linq_Enums - Fatal编程技术网

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方法?你真的需要提供一个。