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)); }
public async Task <bool> DeleteAsync(ISqlSpecification <T> specification) { var entitiesToDelete = await GetAllAsync(specification); _dbSet.RemoveRange(entitiesToDelete); var result = await _dbContext.SaveChangesAsync(); return(result > 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()); }
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); }
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); } } }
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()); }
public async Task <bool> AnyAsync(ISqlSpecification <T> specification) => await _dbSet.AnyAsync(specification.Predicate);
public async Task <long> CountAsync(ISqlSpecification <T> specification) => await _dbSet.CountAsync(specification.Predicate);