Dette ligner en fejl i Oracles MySQL Connector/NET (aka MySql.Data
). Det ligner ikke nogen fejl, som jeg er bekendt med i den fejldatabase; det skal muligvis arkiveres som et nyt problem. (Bug 75301
ligner, men det er ikke umiddelbart indlysende, at det er det samme problem.)
Jeg vil anbefale at skifte til MySqlConnector
; det er et alternativt ADO.NET-bibliotek til MySQL, der har stor kompatibilitet med Dapper og retter mange kendte fejl
i MySQL Connector/NET. MySqlConnector har også ægte async I/O-understøttelse, som ikke er implementeret
i Connector/NET; dette vil være vigtigt, hvis du vil bruge QueryAsync
i din kode.
Hvis du vil fortsætte med at bruge Oracles MySQL Connector/NET, kan du muligvis løse problemet ved at tilføje CheckParameters=false
til din forbindelsesstreng. Bemærk, at dette kan være en brydende ændring til din kode; hvis du indstiller indstillingen til falsk, skal du manuelt sikre, at parametrene tilføjet til hver CommandType.StoredProcedure
MySqlCommand
er i nøjagtig samme rækkefølge som databasen (fordi MySql.Data ikke længere vil rette dem op for dig).
Opdatering: Efter at have set på Connector/NET-kildekoden, ser det ud til, at din database har nogle data, den ikke forventer. Frembringer en af de følgende to forespørgsler rækker? Hvis ja, hvilke værdi(er) er 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;
Hvilken MySQL-server bruger du (MySQL, MariaDB, Amazon Aurora) og hvilken version?