Files
XCool f25b0307db
Some checks failed
CI/CD Pipeline / 测试 (18.x) (push) Has been cancelled
CI/CD Pipeline / 测试 (20.x) (push) Has been cancelled
CI/CD Pipeline / 安全检查 (push) Has been cancelled
CI/CD Pipeline / 部署 (push) Has been cancelled
CI/CD Pipeline / 通知 (push) Has been cancelled
初始化
2025-11-03 19:47:36 +08:00

86 lines
2.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}