Оператор "==" нельзя использовать для операндов операций ("enum") или "int" - PullRequest
1 голос
/ 24 февраля 2020

Когда я пытался извлечь данные из базы данных (SQL платформа сервера / сущности), я получал ошибку ниже:

Оператор "==" нельзя использовать для операндов ("" Операции enumDropDown ") или" int ".

, и я не могу хорошо написать запрос в контроллере, он выдает ошибку около DropdownClassList == 2.

Контроллер: (я пытался)


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

Модель:

public partial class modelCard
{
    public enumDropDown? DropdownClassList{ get; set; }
}

public enum enumDropDown
{
    test1 = 1,
    test2 = 2,
    test3 =3
}

Ответы [ 3 ]

2 голосов
/ 24 февраля 2020

Вы должны сравнить значение свойства со значением перечисления:

var listaOdbioruNadgodzin = _ecpContext.Karta.Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2)
2 голосов
/ 24 февраля 2020

Измените свой код на это:

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

В настоящее время вы сравниваете значение перечисления со строкой "2", в то время как вам нужно сравнить его с типом перечисления.

Есть Еще два варианта для вас (хотя и не рекомендуется, и они работают одинаково друг с другом Как сравнить значения enum и int? )

x.DropdownClassList == (enumDropDown?)2

или

(int)x.DropdownClassList == 2
1 голос
/ 24 февраля 2020

Согласно комментарию @juergen d, вы должны изменить код для сравнения enumDropDown вместо int.

var listaOdbioruNadgodzin = _ecpContext.Karta
             .Where(x => x.Login == userName && x.DropdownClassList == enumDropDown.test2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...