Tôi đang cố gắng tham số hóa truy vấn SQL thô cho một từ đồng nghĩa Oracle (không phải thực thể) trong EF 4 và tôi đang gặp một số vấn đề. Hiện tại tôi đang làm một cái gì đó giống như mã bên dưới, dựa trên một số ví dụ mà tôi đã thấy:Tham số hóa truy vấn Oracle SQL thô trong Entity Framework
string term="foo";
OracleParameter p = new OracleParameter("@param1", term);
object[] parameters = new object[] { p };
var model = db.Database.SqlQuery<ProjectTask>("SELECT * FROM (SELECT * FROM web_project_task_vw WHERE project_num like '%@param1%') WHERE rownum<=100", parameters).ToList();
Chạy điều này không trả về bất kỳ kết quả nào. Nếu tôi thay thế thông số bằng một cái gì đó như
"SELECT * FROM web_project_task_vw WHERE project_num like '%"+term+"%'"
nó trả về kết quả tôi mong đợi, nhưng điều này rõ ràng là một nguy cơ tiêm SQL.
Bất cứ ai có thể chỉ cho tôi đúng hướng cho cách các thông số được cho là hoạt động trong EF 4 cho Oracle DB không?
Cảm ơn.
Tôi nghĩ Oracle tên tham số bắt đầu với: thay vì @? – RogerN