Това изглежда като грешка в MySQL Connector/NET на Oracle (известен още като MySql.Data
). Не изглежда като никакъв бъг, с който съм запознат в тази база данни за грешки; може да се наложи да се подаде като нов проблем. (Бъг 75301
изглежда подобно, но не е веднага очевидно, че това е същият проблем.)
Бих препоръчал да преминете към MySqlConnector
; това е алтернативна библиотека ADO.NET за MySQL, която има страхотна съвместимост с Dapper и поправя много известни грешки
в MySQL Connector/NET. MySqlConnector също има истинска поддръжка за асинхронен I/O, която не е внедрена
в Connector/NET; това ще бъде важно, ако искате да използвате QueryAsync
във вашия код.
Ако искате да продължите да използвате MySQL Connector/NET на Oracle, може да успеете да заобиколите проблема, като добавите CheckParameters=false
към вашия низ за връзка. Имайте предвид, че това може да е критична промяна към вашия код; ако зададете настройката на false, ще трябва ръчно да се уверите, че параметрите, добавени към всеки CommandType.StoredProcedure
MySqlCommand
са в същия ред като базата данни (защото MySql.Data вече няма да ги коригира вместо вас).
Актуализация: След като разгледате изходния код на Connector/NET, изглежда, че вашата база данни има някои данни, които не очаква. Някоя от следните две заявки произвежда ли редове? Ако е така, кои стойности са 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;
Какъв MySQL сървър използвате (MySQL, MariaDB, Amazon Aurora) и коя версия?