Member 13667386 Ответов: 1

Он показывает ошибку "оператор '==' не может быть применен к операндам типа 'string' и 'int' " in ", где(x => x.person_id == id)"


[HttpGet]
public ActionResult EmployeeView(int id)
{
Сотрудник сотрудник = новый сотрудник();
использование (HRMSEntities employeeContext = new HRMSEntities())
{
сотрудник = employeeContext.Работник.Где(x => x.Person_Id == id).Метода firstordefault();
}
вид возврата(сотрудник);
}
}

Что я уже пробовал:

[HttpGet]
       public ActionResult EmployeeView(int id)
       {
           Employee employee = new Employee();
           using (HRMSEntities employeeContext = new HRMSEntities())
           {
               employee = employeeContext.Employee.Where(x => x.Person_Id == id).FirstOrDefault();
           }
           return View(employee);
       }
   }

CHill60

Вы не можете сравнивать строки с такими интами ... Person_Id должен быть строкой. Попробуйте сравнить его с id.Вместо этого ToString()

Member 13667386

пожалуйста, помогите мне, я новичок в c#

CHill60

Вы получите более быстрые ответы, если будете использовать ссылку "ответить" для комментария, а не рисковать тем, что я вернусь к сообщению, которое я уже прокомментировал

Member 13667386

как я могу это исправить?

Likefire

сотрудник = employeeContext.Работник.Где(x => x.Person_Id.Equals(id.ToString ())). FirstOrDefault();

1 Ответов

Рейтинг:
2

OriginalGriff

Вам нужно изменить Person_Id со строки на int - и, вероятно, исправить его в исходном коде. Если вы извлекаете значения из БД, а тип данных столбца-VARCHAR или NVARCHAR, то вам нужно изменить его на целое число, если ваши идентификаторы должны быть числовыми. Всегда используйте наиболее подходящий тип данных; все остальное-это Пита.

Если вы этого не сделаете, то не только возникнут подобные проблемы, но вы получите еще более серьезные проблемы, когда попытаетесь использовать любую форму сортировки: строки сортируются в соответствии с первым другим символом, поэтому они не работают "правильно" при сортировке числовых значений:

1
10
11
...
19
2
20
21
...


phil.o

5'd, но взгляните на предварительный вопрос- довольно запутанно, да?

OriginalGriff

В настоящее время он запускает свою четвертую копию того же вопроса - я уже удалил один из них в качестве репоста.

Еще много, и я испытываю искушение начать относиться к этому как к злоупотреблению... :смех:

OriginalGriff

И похоже, что ответ Чилла был удален вместе с четвертым ... Я взял третью ...

phil.o

- Положи мышь на пол! Сейчас же! Положите мышь на пол!"