public void AjouterSelectCount(Requete requete, Type type)
        {
            var rr = _connectionFactory.ObtenirNomTable(type);

            _type = type;
            _sb   = new StringBuilder();
            var(parameters, listParamsWhere) = requete.GetWhere(type);
            _paramsSql = listParamsWhere.ToArray();
            _sb.AppendLine($"select count(*) from {_connectionFactory.ObtenirNomTable(_type)}");
        }
        public void AjouterSelectFrom(Requete request, Type type)
        {
            var tt = _connectionFactory.ObtenirNomTable(type);

            var(dynamicParameters, listParams) = request.GetWhere(type);
            _type             = type;
            _sb               = new StringBuilder();
            _objectParameters = dynamicParameters;
            _paramsSql        = listParams.ToArray();
            _sortDescriptor   = request.Ordres?.FirstOrDefault();
            _sb.AppendLine($"select {_type.Sql().GetParamsWithCommas()}");
            _sb.AppendLine($"from {_connectionFactory.ObtenirNomTable(type)}");
        }
示例#3
0
 public BuilderCount SelectCount <T>(Requete request)
 {
     StartBuiderCount <T>(request);
     return(_builderCount);
 }
示例#4
0
 public SqlBuilder SelectFrom <T>(Requete request)
 {
     _builderParams.AjouterSelectFrom(request, typeof(T));
     return(this);
 }
示例#5
0
        public static (DynamicParameters ObjectParams, List <string> ListParams) GetWhere(this Requete request, Type type)
        {
            var dbArgs = new DynamicParameters();

            var listParam = new List <string>();

            dbArgs.Add("Row", request.GetRow());
            dbArgs.Add("PageSize", request.TaillePage);

            foreach (var filterDesc in request.Filtres)
            {
                dbArgs.Add(filterDesc.Membre, filterDesc.Valeur);
                listParam.Add(GetDescriptor(filterDesc, type));
            }

            return(dbArgs, listParam);
        }
        public async Task <ResultatPagine <TProjection> > ObtenirPagine <TProjection>(Requete requete)
        {
            var(sqlSelect, parametersSelect) = _sqlBuilder.GetSelectWithPaging <TProjection>(requete);
            var(sqlCount, parametersCount)   = _sqlBuilder.SelectFullCount <TProjection>(requete);

            return(new ResultatPagine <TProjection>(
                       data: await Connection.QueryAsync <TProjection>(sqlSelect, parametersSelect),
                       total: await Connection.QuerySingleAsync <int>(sqlCount, parametersCount)
                       ));
        }