Finalmente encontré la solución después de leer el siguiente manual https://downloads.mysql. com/docs/connector-net-en.pdf
Hay una opción de conexión llamada Use Affected Rows, UseAffectedRows
Su valor predeterminado se establece en falso.
Y la descripción dice:
Cuando se utilizan; No establece el indicador CLIENT_FOUND_ROWS cuando se conecta al servidor
Parece que MySQL Workbench y MySQL Command Line no usan el indicador CLIENT_FOUND_ROWS durante la conexión, mientras que MySql .Net Connector lo usa de manera predeterminada.
Desde INSERTAR... EN ACTUALIZAR CLAVE DUPLICADA documento en https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
Solución:agregue esto a la cadena de conexión
Use Affected Rows=true