Finalmente encontrei a solução depois de ler o manual abaixohttps://downloads.mysql. com/docs/connector-net-en.pdf
Existe uma opção de conexão chamada Use Affected Rows, UseAffectedRows
Seu valor padrão é definido como false.
E a descrição diz:
Quando usado; Não define o sinalizador CLIENT_FOUND_ROWS ao se conectar ao servidor
Parece que MySQL Workbench e MySQL Command Line não usam o sinalizador CLIENT_FOUND_ROWS durante a conexão, onde o MySql .Net Connector o usa por padrão.
Do documento INSERT ... ON DUPLICATE KEY UPDATE em https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
Solução:adicione isto à string de conexão
Use Affected Rows=true