我有一个原始 SQL 查询,我正在尝试与 SqlParameters 一起使用。当我不安全地创建查询(使用字符串连接)时,它工作正常......我得到了结果。在这种情况下,我得到 10。
当我尝试使用 SQL 参数时,我得到零记录。我尝试使用和不使用 @ 创建参数,尝试在调用中单独添加它们Query
,并且尝试使用对象参数而不是 Sql 参数。我什至尝试过只使用一个....无论我做什么,我似乎都无法使用 SQL 参数获得结果,只能使用字符串连接。
实体框架 SQL 查询如何与 SQL 参数一起使用,为什么我使用的查询不起作用?
示例代码:
string query = "WITH OrderedItems AS " +
"(" +
"SELECT *, " +
"ROW_NUMBER() OVER (ORDER BY @p0) AS 'RowNumber' " +
"FROM ITEMS" +
" WHERE item_name LIKE '%@p1%'" +
")" +
"SELECT * FROM OrderedItems" +
" WHERE RowNumber BETWEEN " + (skip + 1) + " AND " + (skip + take);
// I have tried using @p0 and @p1 as the parameter names here
var parameters = new object[] {new SqlParameter("p0", orderBy), new SqlParameter("p1", model.item_name)};
var context = new DbEntities();
// I have tried only using one and passing it too
List<item> result = context.items.SqlQuery(query, parameters).ToList();