【发布时间】:2013-03-08 17:01:12
【问题描述】:
我正在尝试为 EF 4 中的 Oracle 同义词(非实体)参数化原始 SQL 查询,但遇到了一些问题。目前,我正在根据我看到的一些示例执行以下代码:
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();
运行它不会返回任何结果。如果我将参数替换为
"SELECT * FROM web_project_task_vw WHERE project_num like '%"+term+"%'"
它返回了我期望的结果,但这显然存在 SQL 注入风险。
谁能指出我应该如何在 EF 4 中为 Oracle DB 工作的参数的正确方向?
谢谢。
【问题讨论】:
-
我认为 Oracle 参数名称以 : 开头,而不是 @?
标签: c# oracle entity-framework-4