Why casting an integer to an enum type won't work, unless i'll cast to integer first, and then to int ?

I read an integer type from data set, and had to cast the data read to an integer before casting it to the enum type.