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