B
句意:玛丽去过上海迪士尼乐园多少次?
how long 多长时间,提问一段时间
how many times 多少次
have/has been to 去过
have/has been in 在某地
上海迪士尼乐园是一个小地方,若是问在上海迪士尼乐园待多久了,正确问句为:
How long has Mary been at Shanghai Disneyland?
即介词应该用at,故排除AC选项;
若是问去过多少次了,用how many times和have/has been to,即:
How many times has Mary been to Shanghai Disneyland?
综上,答案为B