var pageSize = 6;
var totalPages = 0;
var count = 0;
var page = UrlData[0].IsInt() ? UrlData[0].AsInt() : 1;
var offset = (page -1) * pageSize;
string selectQueryString = "SELECT * FROM PropertyInfo ";
//some (if) statements which append various (where) clauses to the query
selectQueryString += "ORDER BY NumBedrooms DESC OFFSET @0 ROWS FETCH NEXT @1 ROWS ONLY;";
string[] argArray = argList.ToArray();
然后我通过定义@ 0和@ 1
的值来尝试将它们拼凑在一起queryResults = db.Query(selectQueryString, argArray, offset, pageSize);
但是这给了我错误“从对象类型System.String []到已知的托管提供者本机类型没有映射。”
任何想法我做错了什么?
答案 0 :(得分:2)
我不相信你可以将数组和参数列表组合在一起 - 将所有参数切换到数组中,或者将它们全部切换为使用@ 0,@ 1样式序列。
另外,作为旁注,行:
var page = UrlData[0].IsInt() ? UrlData[0].AsInt() : 1;
可以使用默认参数AsInt()
简化:
var page = UrlData[0].AsInt(1);