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)
演员?