Utiliza mejor Convert.ToInt32
Código:
loTB_Menu.CnID_MenuPadre = (loReader["cnID_MenuPadre"] == DBNull.Value) ? null : Convert.ToInt32(loReader["cnID_MenuPadre"]);
Si eso no funciona pueden porque en la base de datos no esté regresando realmente un valor entero
Salu2