Sembra un bug in MySQL Connector/NET di Oracle (aka MySql.Data
). Non sembra nessun bug con cui ho familiarità in quel database di bug; potrebbe essere necessario archiviare come una nuova emissione. (Bug 75301
sembra simile ma non è immediatamente ovvio che si tratti dello stesso problema.)
Consiglierei di passare a MySqlConnector
; è una libreria ADO.NET alternativa per MySQL che ha un'ottima compatibilità con Dapper e corregge molti bug noti
in MySQL Connector/NET. MySqlConnector ha anche un vero supporto I/O asincrono, che è non implementato
in Connettore/NET; questo sarà importante se vuoi usare QueryAsync
nel tuo codice.
Se desideri continuare a utilizzare MySQL Connector/NET di Oracle, potresti essere in grado di aggirare il problema aggiungendo CheckParameters=false
alla stringa di connessione. Tieni presente che questo potrebbe essere un cambiamento fondamentale al tuo codice; se imposti l'impostazione su false, dovrai assicurarti manualmente che i parametri aggiunti a ciascun CommandType.StoredProcedure
MySqlCommand
sono esattamente nello stesso ordine del database (perché MySql.Data non li riparerà più per te).
Aggiornamento: Dopo aver esaminato il codice sorgente di Connector/NET, sembra che il tuo database abbia alcuni dati che non si aspetta. Una delle seguenti due query produce righe? In tal caso, quali valori sono NULL
?
SELECT * FROM information_schema.routines
WHERE specific_name IS NULL OR
routine_schema IS NULL OR
routine_name IS NULL OR
routine_type IS NULL OR
routine_definition IS NULL OR
is_deterministic IS NULL OR
sql_data_access IS NULL OR
security_type IS NULL OR
sql_mode IS NULL OR
routine_comment IS NULL OR
definer IS NULL;
SELECT * FROM mysql.proc
WHERE specific_name IS NULL OR
db IS NULL OR
name IS NULL OR
type IS NULL OR
body IS NULL OR
is_deterministic IS NULL OR
sql_data_access IS NULL OR
security_type IS NULL OR
sql_mode IS NULL OR
comment IS NULL OR
definer IS NULL;
Quale server MySQL stai utilizzando (MySQL, MariaDB, Amazon Aurora) e quale versione?