I had to change sql server for oracle.
So I redid the query.
My query/Method on sql server with dapper was like this and worked perfectly :
public Pagination<User> ShowAllUsers(string name, int pageSize, int pageNumber)
{
var cn = DbContext.Database.Connection;
var sql = @"SELECT * FROM USERS" +
"WHERE (@Name IS NULL OR Nome LIKE @Name+ '%') " +
"ORDER BY [Nome] " +
"OFFSET " + pageSize * (pageNumber - 1) + " ROWS " +
"FETCH NEXT " + pageSize + " ROWS ONLY " +
" " +
"SELECT COUNT(Id) FROM USERS" +
"WHERE (@Nome IS NULL OR Name LIKE @Name + '%') ";
var multi = cn.QueryMultiple(sql, new { Name = name});
var users= multi.Read<User>();
var total = multi.Read<int>().FirstOrDefault();
}
And next, is my query with Oracle/Method,
public Pagination<Barco> ShowAllUsers(string name, int pageSize, int pageNumber)
{
var cn = DbContext.Database.Connection;
var sql = @"SELECT *
FROM (
SELECT ROWNUM rnum, b.*
FROM (
SELECT *
FROM USERS
WHERE (:Name IS NULL OR USERS.NAME LIKE :Name + '%')
) b
) WHERE RNUM between :pageSize * (:pageNumber - 1) + 1 and(:pageSize * :pageNumber) ";
var multi = cn.QueryMultiple(sql, new { Name = name});
var users = multi.Read<User>();
var total = multi.Read<int>().FirstOrDefault();
}
When changing the query to pl/sql format, I am getting the following error:
Invalid parameter binding Parameter Name: pageSize
How could I adjust this query to work with dapper?
pageSize(andpageNumber) to the query?new { Name = name}=>new { Name = name, pageSize, pageNumber}"The reader has been disposed; this can happen after all data has been consumed Object name: 'Dapper.SqlMapper + GridReader''." So I changed the variable "multi" to cn.Query, but now I have an error in the users and total variables. Any ideas?