EnumType = reader["EnumTypeId"] == DBNull.Value ? EnumType.None : (EnumType)(int)reader["EnumTypeId"];
我认为如果reader["EnumTypeId"]为 null,它应该分配EnumType.None值,但它仍在尝试将 null 值强制转换为 int,这显然会导致异常。
我尝试了以下,它也没有工作:
EnumType = reader["EnumTypeId"] == null ? EnumType.None : (EnumType)(int)reader["EnumTypeId"];
我没有使用Enums,而是继续并决定使用 nullable int,所以现在我的代码略有不同,但它仍然不适用于DBNull.Value,null或GetOrdinal...
intType= reader["intType"] == DBNull.Value ? null : (int?)reader["intType"];
另外,为什么我必须做(int?)演员而不是(int)演员?