简体   繁体   English

EF SqlQuery参数错误

[英]EF SqlQuery Parameter error

Using 运用

string sql = @"
SELECT TOP 50 *
FROM Log 
ORDER BY Date desc";
return context.Database.SqlQuery<Log>(sql).ToList();

work, but when i'm trying to insert parameter like 工作,但当我试图插入参数时

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();

I get 我明白了

"Additional information: Incorrect syntax near '@top'.". “附加信息:'@ top'附近的语法不正确。”

Where I wrong? 哪里错了?

Rearrange your query as following 按如下方式重新排列查询

string sql = @"
SELECT TOP (@top) *
FROM Log 
ORDER BY @order";

EDIT 编辑

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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM