System.InvalidCastException = "Specified cast is not valid."
Это ошибка, которую я получаю.
Мой код достаточно прост:
public Staff FindStaff(int id)
{
try
{
return db.Staffs.SingleOrDefault(c => c.ID == id);
}
catch (Exception e)
{
Debug.WriteLine(e.InnerException);
throw;
}
}
Я использовал точку останова, чтобы проверить, какое значение имеет параметр id при выполнении, и он имеет числовое значение существующей записи. Например, 4.
Ошибка срабатывает в операторе возврата.
Что странно, у меня точно такой же тип кода для другой сущности в моем проекте, и он отлично работает. Что может быть причиной этой ошибки?
Вот TSQL, который я использовал для создания таблиц. Персонал - тот, кто вызывает ошибку, Студент работает на 100% нормально.
create table Student
(
ID integer primary key autoincrement,
...other fields...
);
create table Staff
(
ID integer primary key autoincrement,
IDStaffType integer references StaffType(ID),
...other fields...
);
Как видите, оба поля идентификатора являются целыми числами. Почему возникает исключение преобразования?