Eu resolvi seu mesmo erro simplesmente adicionando o charset à string de conexão:
Server=myServer;Port=3306;Database=myDB15;User ID=usr33;Password=usr33P;CharSet=utf8;
No meu caso estou usando o MySql Connector para .Net versão 6.9.3. para se conectar a 30 bancos de dados iguais com a mesma estrutura, mesmo agrupamento (utf8_unicode_ci ) e diferentes conteúdos de tabela.
Quando executei MySqlCommand.ExecuteReader() método para selecionar o conteúdo do usuário tabela, em alguns bancos de dados (4 de 30) obtive o mesmo erro A chave fornecida não estava presente no dicionário .