Điều này trông giống như một lỗi trong Trình kết nối MySQL / NET của Oracle (hay còn gọi là MySql.Data
). Nó không giống bất kỳ lỗi nào mà tôi quen thuộc trong cơ sở dữ liệu lỗi đó; nó có thể cần phải được nộp dưới dạng một vấn đề mới. ( Lỗi 75301
trông giống nhau nhưng không rõ ràng là cùng một vấn đề.)
Tôi khuyên bạn nên chuyển sang MySqlConnector
; đó là một thư viện ADO.NET thay thế cho MySQL có khả năng tương thích tuyệt vời với Dapper và sửa nhiều lỗi đã biết
trong MySQL Connector / NET. MySqlConnector cũng có hỗ trợ I / O không đồng bộ thực sự, điều này không được triển khai
trong Trình kết nối / NET; điều này sẽ quan trọng nếu bạn muốn sử dụng QueryAsync
trong mã của bạn.
Nếu bạn muốn tiếp tục sử dụng Trình kết nối MySQL / NET của Oracle, bạn có thể khắc phục sự cố bằng cách thêm CheckParameters=false
vào chuỗi kết nối của bạn. Lưu ý rằng đây có thể là một thay đổi đột ngột mã của bạn; nếu bạn đặt cài đặt thành false, bạn sẽ phải đảm bảo rằng các tham số được thêm vào mỗi CommandType.StoredProcedure
theo cách thủ công MySqlCommand
theo thứ tự chính xác như cơ sở dữ liệu (vì MySql.Data sẽ không sửa chúng cho bạn nữa).
Cập nhật: Sau khi xem mã nguồn Connector / NET, có vẻ như cơ sở dữ liệu của bạn có một số dữ liệu mà nó không mong đợi. Một trong hai truy vấn sau đây có tạo ra hàng không? Nếu vậy, (các) giá trị nào là 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;
Bạn đang sử dụng Máy chủ MySQL nào (MySQL, MariaDB, Amazon Aurora) và phiên bản nào?