using System.Linq.Expressions; namespace HardwarePerformance.Application.Interfaces { /// /// 通用Repository接口,定义基本的CRUD操作 /// /// 实体类型 public interface IRepository where T : class { /// /// 根据ID获取实体 /// /// 实体ID /// 实体对象 Task GetByIdAsync(int id); /// /// 获取所有实体 /// /// 实体列表 Task> GetAllAsync(); /// /// 根据条件查询实体 /// /// 查询条件 /// 符合条件的实体列表 Task> FindAsync(Expression> predicate); /// /// 检查是否存在符合条件的实体 /// /// 查询条件 /// 是否存在 Task ExistsAsync(Expression> predicate); /// /// 添加实体 /// /// 要添加的实体 /// 添加后的实体 Task AddAsync(T entity); /// /// 批量添加实体 /// /// 要添加的实体列表 /// 添加后的实体列表 Task> AddRangeAsync(IEnumerable entities); /// /// 更新实体 /// /// 要更新的实体 /// 更新后的实体 Task UpdateAsync(T entity); /// /// 删除实体 /// /// 要删除的实体 /// 是否删除成功 Task DeleteAsync(T entity); /// /// 根据ID删除实体 /// /// 实体ID /// 是否删除成功 Task DeleteByIdAsync(int id); /// /// 获取实体数量 /// /// 实体总数 Task CountAsync(); /// /// 根据条件获取实体数量 /// /// 查询条件 /// 符合条件的实体数量 Task CountAsync(Expression> predicate); } }