ahmed_sa Ответов: 2

При преобразовании var nextid в integer get error как решить ошибку


когда вы пытаетесь преобразовать nextid в целое число, чтобы назначить employeeid
я получаю ошибку, как показано ниже
System.InvalidCastException: 'Unable to cast object of type 'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.Int32]' to type 'System.IConvertible'.'

идентификатор сотрудника является целочисленным и ошибка отображается на экране
int NextIdValue = Convert.ToInt32(nextID);

вышеприведенная строка
как решить эту проблему, если это возможно

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

<pre>  public ActionResult Next(int id)
        {
            var nextID = _context.GetAll().OrderBy(i => i.EmployeeId)
                     .SkipWhile(i => i.EmployeeId != id)
                     .Skip(1)
                     .Select(i => i.EmployeeId);
            
            ViewBag.NextID = nextID;
           int NextIdValue = Convert.ToInt32(nextID);
            return View("Create", new Employee { EmployeeId = NextIdValue });
         
        }

2 Ответов

Рейтинг:
2

GKP1992

Если вы посмотрите внимательно, ошибка сама скажет вам, что не так.
Параметр, который вы передаете методу Convert.ToInt32 относится к этому типу.

Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.Int32]

Попробуй позвонить
FirstOrDefault()
после
.Select(i => i.EmployeeId)
заявление, чтобы получить хороший тип в nextID.
И если это уже целое число, избегайте преобразования.