using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; namespace APT.Infrastructure.Core { /// /// 异步泛型主键实体仓储接口 /// /// 实体类型 /// 实体主键类型 public interface IRepositoryAsync where TEntity : EntityBase { /// /// 异步插入实体 /// /// 实体对象 /// 操作影响的行数 Task AddAsync(TEntity entity); /// /// 异步批量插入实体 /// /// 实体对象集合 /// 操作影响的行数 Task AddAsync(IEnumerable entities); /// /// 异步删除实体 /// /// 实体对象 /// 操作影响的行数 Task DeleteAsync(TEntity entity); /// /// 异步删除指定编号的实体 /// /// 实体编号 /// 操作影响的行数 Task DeleteAsync(TKey key); /// /// 异步删除所有符合特定条件的实体 /// /// 查询条件谓语表达式 /// 操作影响的行数 Task DeleteAsync(Expression> predicate); /// /// 异步批量删除删除实体 /// /// 实体对象集合 /// 操作影响的行数 Task DeleteAsync(IEnumerable entities); /// /// 异步更新实体对象 /// /// 实体对象 /// 操作影响的行数 Task UpdateAsync(TEntity entity); /// /// 异步批量更新实体对象 /// /// 实体对象集合 /// 操作影响的行数 Task UpdateAsync(IEnumerable entities); /// /// 批量更新 /// /// 查询条件谓语表达式 /// 更新表达式 /// 操作影响的行数 Task UpdateAsync(Expression> predicate, Expression> updateExpression); /// /// 异步获取指定主键的实体 /// /// 实体主键 /// 符合主键的实体,不存在时返回null Task GetByKeyAsync(TKey key); /// /// 异步获取符合条件的实体 /// /// 查询条件谓语表达式 /// 符合条件的实体,不存在时返回null Task GetAsync(Expression> predicate); /// /// 异步获取记录数 /// /// Task CountAsync(); /// /// 异步获取符合条件的记录数 /// /// 查询条件谓语表达式 /// Task CountAsync(Expression> predicate = null); /// /// 异步是否存在符合条件的记录 /// /// 查询条件谓语表达式 /// Task ExistsAsync(Expression> predicate); } public interface IRepositoryAsync : IRepositoryAsync where TEntity : EntityBase { } public interface IIntRepositoryAsync : IRepositoryAsync where TEntity : EntityBase { } }