At least 31 people have died after an explosion ripped through a restaurant in Yinchuan, capital of the Ningxia Hui Autonomous Region.