我正在使用数据库模型并尝试使用.ExecuteStoreQuery
函数查询一些数据。
我的 SQL 语句看起来像这样
SELECT * FROM t WHERE f1 LIKE @pr1 AND f2 LIKE @pr2 AND f3 LIKE @pr3
现在如您所见,我使用 3 个参数:@pr1,2,3
context.ExecuteStoreQuery(SQL_string,
new SqlParameter {
ParameterName = "pr1",
Value = filterVal1
},
new SqlParameter {
ParameterName = "pr2",
Value = filterVal2
},
new SqlParameter {
ParameterName = "pr3",
Value = filterVal3 == 0 ? filterVal3.ToString() : "%"
});
如您所见,根据条件,我想使用 filterVal3 的实际值或通配符 % 所以最后当执行 sql 语句时,它将根据其他 2 个参数选择记录。
问题是,“%”被翻译成我所期望的东西,并且查询返回空集。我试图用 SQL_string 中的 '%' 替换 @pr3,它实际上给了我我需要的结果。
那么如何使用 SqlParameter 让它工作呢?
希望我很清楚。