Finalmente ho trovato la soluzione dopo aver letto il manuale qui sottohttps://downloads.mysql. com/docs/connector-net-en.pdf
Esiste un'opzione di connessione chiamata Usa righe interessate, Usa righe interessate
Il suo valore predefinito è impostato su false.
E la descrizione dice:
Quando utilizzato; Non imposta il flag CLIENT_FOUND_ROWS durante la connessione al server
Sembra che MySQL Workbench e MySQL Command Line non utilizzino il flag CLIENT_FOUND_ROWS durante la connessione, mentre MySql .Net Connector lo utilizza per impostazione predefinita.
Dal documento INSERT... ON DUPLICATE KEY UPDATE su https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
Soluzione:aggiungi questo alla stringa di connessione
Use Affected Rows=true