-
-
Notifications
You must be signed in to change notification settings - Fork 19
Repositories
anton-martyniuk edited this page Sep 2, 2022
·
6 revisions
Modern generic repository is divided into 2 interfaces: IModernQueryRepository<TEntity, TId> and IModernCrudRepository<TEntity, TId>.
IModernQueryRepository has the following methods:
Task<TEntity> GetByIdAsync(TId id, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<TEntity?> TryGetByIdAsync(TId id, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<IEnumerable<TEntity>> GetAllAsync(EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<long> CountAsync(CancellationToken cancellationToken = default);
Task<long> CountAsync(Expression<Func<TEntity, bool>> predicate, EntityIncludeQuery<TEntity>? includeQuery = null,
CancellationToken cancellationToken = default);
Task<bool> ExistsAsync(Expression<Func<TEntity, bool>> predicate, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<TEntity?> FirstOrDefaultAsync(Expression<Func<TEntity, bool>> predicate, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<TEntity?> SingleOrDefaultAsync(Expression<Func<TEntity, bool>> predicate, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<IEnumerable<TEntity>> WhereAsync(Expression<Func<TEntity, bool>> predicate, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
Task<PagedResult<TEntity>> WhereAsync(Expression<Func<TEntity, bool>> predicate, int pageNumber, int pageSize, EntityIncludeQuery<TEntity>? includeQuery = null, CancellationToken cancellationToken = default);
IQueryable<TEntity> AsQueryable();IModernCrudRepository has the following methods:
Task<TEntity> CreateAsync(TEntity entity, CancellationToken cancellationToken = default);
Task<List<TEntity>> CreateAsync(List<TEntity> entities, CancellationToken cancellationToken = default);
Task<TEntity> UpdateAsync(TId id, TEntity entity, CancellationToken cancellationToken = default);
Task<List<TEntity>> UpdateAsync(List<TEntity> entities, CancellationToken cancellationToken = default);
Task<TEntity> UpdateAsync(TId id, Action<TEntity> update, CancellationToken cancellationToken = default);
Task<bool> DeleteAsync(TId id, CancellationToken cancellationToken = default);
Task<bool> DeleteAsync(List<TId> ids, CancellationToken cancellationToken = default);
Task<TEntity> DeleteAndReturnAsync(TId id, CancellationToken cancellationToken = default);