EF SqlQuery 参数错误
EF SqlQuery Parameter error
正在使用
string sql = @"
SELECT TOP 50 *
FROM Log
ORDER BY Date desc";
return context.Database.SqlQuery<Log>(sql).ToList();
有效,但是当我尝试插入
之类的参数时
string sql = @"
SELECT TOP @top *
FROM Log
ORDER BY @order";
List<object> parameters = new List<object>();
parameters.Add(new SqlParameter("top", top)); //top is int with value 50
parameters.Add(new SqlParameter("order", order)); //order is string with value Date desc
return context.Database.SqlQuery<Log>(sql, parameters.ToArray()).ToList();
我明白了
"Additional information: Incorrect syntax near '@top'.".
我哪里错了?
重新排列您的查询如下
string sql = @"
SELECT TOP (@top) *
FROM Log
ORDER BY @order";
编辑
string sql = @"
SELECT TOP @top *
FROM Log
ORDER BY ";
sql += order;
List<object> parameters = new List<object>();
parameters.Add(new SqlParameter("top", top)); //top is int with value 50
return context.Database.SqlQuery<Log>(sql, parameters.ToArray()).ToList();
正在使用
string sql = @"
SELECT TOP 50 *
FROM Log
ORDER BY Date desc";
return context.Database.SqlQuery<Log>(sql).ToList();
有效,但是当我尝试插入
之类的参数时string sql = @"
SELECT TOP @top *
FROM Log
ORDER BY @order";
List<object> parameters = new List<object>();
parameters.Add(new SqlParameter("top", top)); //top is int with value 50
parameters.Add(new SqlParameter("order", order)); //order is string with value Date desc
return context.Database.SqlQuery<Log>(sql, parameters.ToArray()).ToList();
我明白了
"Additional information: Incorrect syntax near '@top'.".
我哪里错了?
重新排列您的查询如下
string sql = @"
SELECT TOP (@top) *
FROM Log
ORDER BY @order";
编辑
string sql = @"
SELECT TOP @top *
FROM Log
ORDER BY ";
sql += order;
List<object> parameters = new List<object>();
parameters.Add(new SqlParameter("top", top)); //top is int with value 50
return context.Database.SqlQuery<Log>(sql, parameters.ToArray()).ToList();