Vypadá to na chybu v Oracle MySQL Connector/NET (aka MySql.Data
). Nevypadá to jako nějaká chyba, kterou znám v té databázi chyb; možná bude nutné zapsat jako nový problém. (chyba 75301
vypadá podobně, ale není hned zřejmé, že jde o stejný problém.)
Doporučil bych přejít na MySqlConnector
; je to alternativní knihovna ADO.NET pro MySQL, která má skvělou kompatibilitu s Dapper a opravuje mnoho známých chyb
v MySQL Connector/NET. MySqlConnector má také skutečnou asynchronní podporu I/O, která není implementována
v Connector/NET; to bude důležité, pokud chcete použít QueryAsync
ve vašem kódu.
Pokud chcete nadále používat Oracle MySQL Connector/NET, možná budete moci problém obejít přidáním CheckParameters=false
k vašemu připojovacímu řetězci. Upozorňujeme, že toto může být zásadní změna k vašemu kódu; pokud toto nastavení nastavíte na hodnotu false, budete muset ručně zajistit, aby parametry přidané do každého CommandType.StoredProcedure
MySqlCommand
jsou v přesně stejném pořadí jako databáze (protože MySql.Data je již za vás neopraví).
Aktualizace: Po prohlédnutí zdrojového kódu Connector/NET se zdá, že vaše databáze obsahuje nějaká data, která neočekává. Vytváří některý z následujících dvou dotazů řádky? Pokud ano, které hodnoty jsou 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;
Jaký server MySQL používáte (MySQL, MariaDB, Amazon Aurora) a jakou verzi?