我正在使用带有.
sqlQuery(string
sql)命令的EF执行一些
sql.
我想确保我的sql字符串已完全清理,因此逻辑方法是使用带参数的sqlCommand对象来构建它.
但是我不想使用sqlCommand执行它,我只是希望sqlCommand吐出一个字符串,我可以插入我的EF .sqlQuery(…)调用.
有没有办法做到这一点,或另一种确保我的.sqlQuery不会导致注入的方法?
EF
不支持开箱即用吗?
您应该能够使用参数调用sqlQuery,因此它将处理sql注入等,就像sqlCommand一样:
var tests = context.Database.sqlQuery<Test>(
@"SELECT Id,Name FROM tests where Name={0}","TestName");
要么..
var tests = context.Database.sqlQuery<Test>(
@"SELECT Id,Name FROM tests where Name=@name",new sqlParameter("@name","TestName"));