Esempio n. 1
0
        public async Task <PagingResult <T> > ToPageListAsync(int pageIndex, int pageSize)
        {
            var fields = GetFields();
            var from   = GetFrom();

            var sqlBuilder = new SqlServerBuilder();
            var sql        = sqlBuilder.PagingSelect(from, fields, _where, _orderBy, pageIndex, pageSize);

            var command = new SqlCommand(sql);

            command.Parameters.AddRange(_parameters.Parameters);
            var param = new SqlParameter("@RecordCount", SqlDbType.Int)
            {
                Direction = ParameterDirection.Output
            };

            command.Parameters.Add(param);

            var result = new PagingResult <T>();

            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                command.Connection = conn;
                using (var sdr = await command.ExecuteReaderAsync())
                {
                    var handler = new SqlDataReaderConverter <T>(_includeProperties.Select(p => p.PropertyName).ToArray());
                    result.Items = handler.ConvertToEntityList(sdr);
                }
            }

            result.RecordCount = (int)param.Value;
            return(result);
        }
Esempio n. 2
0
        public T FirstOrDefault()
        {
            var fields = GetFields();
            var from   = GetFrom();

            var sqlBuilder = new SqlServerSqlBuilder();
            var sql        = sqlBuilder.Select(from, fields, _where, _orderBy, 1);

            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                var command = new SqlCommand(sql, conn);
                command.Parameters.AddRange(_whereParameters.ToSqlParameters().ToArray());
                var sdr = command.ExecuteReader();

                var handler = new SqlDataReaderConverter <T>(_includeProperties.ToArray());
                return(handler.ConvertToEntity2(sdr));
            }
        }
Esempio n. 3
0
        public async Task <T> FirstOrDefaultAsync()
        {
            var fields = GetFields();
            var from   = GetFrom();

            var sqlBuilder = new SqlServerBuilder();
            var sql        = sqlBuilder.Select(from, fields, _where, _orderBy, 1);

            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                var command = new SqlCommand(sql, conn);
                command.Parameters.AddRange(_parameters.Parameters);
                using (var sdr = await command.ExecuteReaderAsync())
                {
                    var handler = new SqlDataReaderConverter <T>(_includeProperties.Select(p => p.PropertyName).ToArray());
                    return(handler.ConvertToEntity(sdr));
                }
            }
        }
Esempio n. 4
0
        public async Task <List <T> > ToListAsync()
        {
            var fields = GetFields();
            var from   = GetFrom();

            var sqlBuilder = new SqlServerBuilder();
            var sql        = sqlBuilder.Select(from, fields, _where, _orderBy);

            var      visitor = new SqlDataReaderConverter <T>(_includeProperties.Select(p => p.PropertyName));
            List <T> result;

            using (var conn = new SqlConnection(_connectionString))
            {
                var command = new SqlCommand(sql, conn);
                command.Parameters.AddRange(_parameters.Parameters);
                conn.Open();
                using (var sdr = await command.ExecuteReaderAsync())
                {
                    result = visitor.ConvertToEntityList(sdr);
                }
            }
            return(result);
        }
Esempio n. 5
0
        public List <T> ToPageList(int pageIndex, int pageSize, out int recordCount)
        {
            var fields = GetFields();
            var from   = GetFrom();

            recordCount = 0;

            var sqlBuilder = new SqlServerSqlBuilder();
            var sql        = sqlBuilder.GetPagingQuerySql(fields, from, _where, _orderBy, pageIndex, pageSize);

            var command = new SqlCommand(sql);

            command.Parameters.AddRange(_whereParameters.ToSqlParameters().ToArray());
            var param = new SqlParameter("@RecordCount", SqlDbType.Int)
            {
                Direction = ParameterDirection.Output
            };

            command.Parameters.Add(param);

            List <T> result;

            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                command.Connection = conn;
                using (var sdr = command.ExecuteReader())
                {
                    var handler = new SqlDataReaderConverter <T>(_includeProperties.ToArray());
                    result = handler.ConvertToEntityList(sdr);
                }
            }

            recordCount = (int)param.Value;
            return(result);
        }