Ejemplo n.º 1
0
        public async Task <T> GetAsync(ISqlSpecification <T> specification)
        {
            var query = _dbSet.Include(specification.Includes);

            return(specification.AsNoTracking ?
                   await query.AsNoTracking().FirstOrDefaultAsync(specification.Predicate) :
                   await query.FirstOrDefaultAsync(specification.Predicate));
        }
Ejemplo n.º 2
0
        public async Task <bool> DeleteAsync(ISqlSpecification <T> specification)
        {
            var entitiesToDelete = await GetAllAsync(specification);

            _dbSet.RemoveRange(entitiesToDelete);
            var result = await _dbContext.SaveChangesAsync();

            return(result > 0);
        }
Ejemplo n.º 3
0
        public async Task <List <T> > GetAllAsync(ISqlSpecification <T> specification)
        {
            var query = _dbSet.Include(specification.Includes);

            if (specification.Predicate != null)
            {
                query = query.Where(specification.Predicate);
            }

            return(specification.AsNoTracking ?
                   await query.AsNoTracking().ToListAsync() :
                   await query.ToListAsync());
        }
Ejemplo n.º 4
0
        public List <T> FindAll(ISqlSpecification <T> spec)
        {
            List <T> list = new List <T>();

            using (DbDataReader reader = Database.ExecuteReader("select * from " + TableName + " where " + spec.Sql, spec.Parameters,
                                                                CommandBehavior.Default))
            {
                while (reader.Read())
                {
                    list.Add(ConstructFromRecord(reader));
                }
            }
            return(list);
        }
Ejemplo n.º 5
0
 public T FindOne(ISqlSpecification <T> spec)
 {
     using (DbDataReader reader = Database.ExecuteReader("select * from " + TableName + " where " + spec.Sql, spec.Parameters,
                                                         CommandBehavior.SingleRow))
     {
         if (reader.Read())
         {
             return(ConstructFromRecord(reader));
         }
         else
         {
             return(null);
         }
     }
 }
Ejemplo n.º 6
0
        public async Task <List <T> > GetAllAsync(ISqlSpecification <T> specification, ISorting <T> sorting)
        {
            var query = _dbSet.Include(specification.Includes);

            if (specification.Predicate != null)
            {
                query = query.Where(specification.Predicate);
            }

            query = sorting.SortingType == SortingType.Ascending ?
                    query.OrderBy(sorting.Selector) :
                    query.OrderByDescending(sorting.Selector);

            return(specification.AsNoTracking ?
                   await query.AsNoTracking().ToListAsync() :
                   await query.ToListAsync());
        }
Ejemplo n.º 7
0
 public async Task <bool> AnyAsync(ISqlSpecification <T> specification)
 => await _dbSet.AnyAsync(specification.Predicate);
Ejemplo n.º 8
0
 public async Task <long> CountAsync(ISqlSpecification <T> specification)
 => await _dbSet.CountAsync(specification.Predicate);