System.InvalidCastException = "Specified cast is not valid."
これはエラーです。SQLiteからレコードを取得しようとするとかなり簡単なグリッチが発生する
私のコードは十分に簡単です:
public Staff FindStaff(int id)
{
try
{
return db.Staffs.SingleOrDefault(c => c.ID == id);
}
catch (Exception e)
{
Debug.WriteLine(e.InnerException);
throw;
}
}
私は、「ID」パラメータは、実行時に持っているどのような値をチェックするためにブレークポイントを使用している、そしてそれは、既存のレコードの数値を持っています。たとえば、4
returnステートメントでエラーが発生します。
私のプロジェクトでは、別のエンティティのコードと同じタイプのコードがあり、正常に動作します。このエラーの原因は何ですか?
テーブルを作成するために使用した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...
);
ご覧のとおり、両方のIDフィールドは整数ですが、なぜ変換例外が発生するのですか?
コールスタックの抜粋が役立ちます。 –