Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# “==”运算符不能用于(“enum”)或“int”运算的操作数_C#_Asp.net_Sql Server_Entity Framework - Fatal编程技术网

C# “==”运算符不能用于(“enum”)或“int”运算的操作数

C# “==”运算符不能用于(“enum”)或“int”运算的操作数,c#,asp.net,sql-server,entity-framework,C#,Asp.net,Sql Server,Entity Framework,当我尝试从数据库SQL server/entity framework检索数据时,出现以下错误: ==运算符不能用于enumDropDown或int操作的操作数 我不能在控制器中编写查询,它会给我一个错误 nearDropdownClassList==2 控制员:我试过了 型号: 将代码更改为: var listaOdbioruNadgodzin = _ecpContext.Karta.Where( x => x.Login == userName &

当我尝试从数据库SQL server/entity framework检索数据时,出现以下错误:

==运算符不能用于enumDropDown或int操作的操作数

我不能在控制器中编写查询,它会给我一个错误 nearDropdownClassList==2

控制员:我试过了

型号:


将代码更改为:

var listaOdbioruNadgodzin = _ecpContext.Karta.Where(
               x => x.Login == userName && 
               x.DropdownClassList== enumDropDown.test2)
您当前正在将枚举值与字符串2进行比较,同时需要将其与枚举类型进行比较

还有另外两个选项供您选择,尽管不推荐,但它们的性能非常理想


将代码更改为:

var listaOdbioruNadgodzin = _ecpContext.Karta.Where(
               x => x.Login == userName && 
               x.DropdownClassList== enumDropDown.test2)
您当前正在将枚举值与字符串2进行比较,同时需要将其与枚举类型进行比较

还有另外两个选项供您选择,尽管不推荐,但它们的性能非常理想


应将属性值与枚举的值进行比较:

var listaOdbioruNadgodzin = _ecpContext.Karta.Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2)

应将属性值与枚举的值进行比较:

var listaOdbioruNadgodzin = _ecpContext.Karta.Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2)

根据@juergen d的评论,您应该将代码更改为比较enumDropDown而不是int


根据@juergen d的评论,您应该将代码更改为比较enumDropDown而不是int


x、 DropdownClassList==enumDropDown.test2x.DropdownClassList==enumDropDown.Test2显然,当我们知道确切的值是enumDropDown.Test2时,我们不应该从enum转换为int,这就是为什么我在回答中提到了尽管不推荐。虽然这是一个选项,但它指出了原始相等失败的原因。是的,这是有意义的,先生。显然,当我们确切知道值为enumDropDown时,我们不应该将enum转换为int。Test2完全同意,这就是为什么我在回答中提到但不建议这样做的原因。但这是一个选择,它表明了最初的平等失败的原因。是的,这是有道理的,先生。
(int)x.DropdownClassList == 2
var listaOdbioruNadgodzin = _ecpContext.Karta.Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2)
var listaOdbioruNadgodzin = _ecpContext.Karta
             .Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2);