我正在使用此代码:
SqlParameter pNombreUsuario = new SqlParameter("NombreUsuario", paramNombreUsuario);
object[] parametros = new object[] { pNombreUsuario };
string passwordDB = dbContext.Database.SqlQuery<string>("select password from Personal where NombreUsuario = @NombreUsuario", parametros)
.SingleOrDefault<string>();
但发送到数据库的查询是:
select password from Personal where NombreUsuario = @NombreUsuario
为什么不使用带有用户名的参数?
感谢。
答案 0 :(得分:1)
docs表示您应该发送一个对象值数组而不是SqlParameter
个对象。
E.g。
string passwordDB = dbContext.Database
.SqlQuery<string>("select password from Personal where NombreUsuario = @p0", paramNombreUsuario)
.SingleOrDefault<string>();
这对你有用吗?
编辑:我误读了文档。试试这个:
string passwordDB = dbContext.Database
.SqlQuery<string>(
"select password from Personal where NombreUsuario = @NombreUsuario",
new SqlParameter("NombreUsuario", paramNombreUsuario))
.SingleOrDefault<string>();