How Use Store Procedure in 4.6 Version

10 months ago
public Task<IPagedList<Category>> FastFullTextCategorySearchAsync(string keywords, int pageIndex, int pageSize, bool showHidden = false)
        {
            #region Use stored procedure

            //some databases don't support int.MaxValue
            if (pageSize == int.MaxValue)
                pageSize = int.MaxValue - 1;

            var pKeywords = SqlParameterHelper.GetStringParameter("Keywords", keywords);
            var pFullTextMode = SqlParameterHelper.GetInt32Parameter("FullTextMode", (int)_commonSettings.FullTextMode);
            var pPageIndex = SqlParameterHelper.GetInt32Parameter("PageIndex", pageIndex);
            var pPageSize = SqlParameterHelper.GetInt32Parameter("PageSize", pageSize);
            var pShowHidden = SqlParameterHelper.GetBooleanParameter("ShowHidden", showHidden);
            var pTotalRecords = SqlParameterHelper.GetOutputInt32Parameter("TotalRecords");

            //invoke stored procedure
            var categories = _categoryRepository.EntityFromSql(
                "CategoryFullTextSearchAllPaged",
                pKeywords,
                pFullTextMode,
                pPageIndex,
                pPageSize,
                pShowHidden,
                pTotalRecords);
            //get filterable specification attribute option identifier
            //return products
            int totalRecords = (pTotalRecords.Value != DBNull.Value) ? Convert.ToInt32(pTotalRecords.Value) : 0;
            return new PagedList<Category>(categories, pageIndex, pageSize, totalRecords);

            #endregion
        }

i used this service in nopcommerce 4.3 version
and now i want use or upgrade it into nopcommerce  
4.6 version but in nop 4.6 SqlParameterHelper class is not supported
so give me solution
10 months ago
Utilise the queryAsync() function.
10 months ago
var sqlParams = new DataParameter[] { 
    new DataParameter("@p1", arg1),
    new DataParameter("@p2", arg2),
  ...
};
var products = await dataProvider.QueryAsync<Product>(sql, sqlParams);