これは、OracleのMySQL Connector / NET(別名MySql.Data
)のバグのようです。 )。そのバグデータベースで私がよく知っているバグのようには見えません。新しい問題として提出する必要があるかもしれません。 (バグ75301
見た目は似ていますが、同じ問題であることがすぐにはわかりません。)
MySqlConnector
に切り替えることをお勧めします;これはMySQL用の代替ADO.NETライブラリであり、Dapperおよび多くの既知のバグを修正
MySQLコネクタ/NETで。 MySqlConnectorには、真の非同期I / Oサポートもあります。これは、実装されていません
Connector/NETで;これは、QueryAsync
を使用する場合に重要になります コード内。
OracleのMySQLConnector/ NETを引き続き使用する場合は、CheckParameters=false
を追加することで問題を回避できる可能性があります。 接続文字列に。 これは重大な変更になる可能性があることに注意してください あなたのコードに;設定をfalseに設定した場合は、各CommandType.StoredProcedure
にパラメーターが追加されていることを手動で確認する必要があります。 MySqlCommand
データベースとまったく同じ順序になっています(MySql.Dataがそれらを修正しなくなるため)。
更新: Connector / NETソースコードを確認したところ、データベースに予期しないデータが含まれているようです。次の2つのクエリのいずれかが行を生成しますか?その場合、どの値が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)とバージョンはどれですか?