How Use Store Procedure in 4.6 Version

10 个月 前
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 个月 前
Utilise the queryAsync() function.
10 个月 前
var sqlParams = new DataParameter[] { 
    new DataParameter("@p1", arg1),
    new DataParameter("@p2", arg2),
  ...
};
var products = await dataProvider.QueryAsync<Product>(sql, sqlParams);