using ECL142.BasicAuth.Domain.Entities.Commons;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace ECL142.BasicAuth.Domain.Repositories
{
///
/// 仓储基接口
///
public interface IBasicRepository : IRepository where TEntity : Entity
{
///
/// 获取所有记录列表
///
///
///
///
Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 获取总记录数
///
///
///
Task GetCountAsync(CancellationToken cancellationToken = default(CancellationToken));
///
/// 翻页获取记录列表
///
///
///
///
///
///
///
Task> GetPagedListAsync(int skipCount, int maxResultCount, string sorting, bool includeDetails = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 根据筛选条件获取记录列表
///
///
///
///
///
///
///
///
Task> GetListAsync(Expression> filter, int skipCount, int maxResultCount, string sorting, bool includeDetails = true, CancellationToken cancellationToken = default);
///
/// 根据筛选条件获取记录总数
///
///
///
///
Task GetCountAsync(Expression> filter, CancellationToken cancellationToken = default);
///
/// 根据主键Id获取记录
///
///
///
///
///
Task FindAsync(TKey id, bool includeDetails = true, CancellationToken cancellationToken = default(CancellationToken));
///
/// 插入记录
///
///
///
///
///
Task InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 批量插入记录
///
///
///
///
///
Task InsertManyAsync(IEnumerable entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 更新记录
///
///
///
///
///
Task UpdateAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 批量更新记录
///
///
///
///
///
Task UpdateManyAsync(IEnumerable entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 根据实体删除记录
///
///
///
///
///
Task DeleteAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 批量删除记录
///
///
///
///
///
Task DeleteManyAsync(IEnumerable entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 根据主键删除记录
///
///
///
///
///
Task DeleteAsync(TKey id, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
///
/// 根据主键,批量删除记录
///
///
///
///
///
Task DeleteManyAsync(IEnumerable ids, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
}
}