|
@ -110,29 +110,32 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
/// 根据ID查询单个实体
|
|
|
/// 根据ID查询单个实体
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="id">要查询的实体ID</param>
|
|
|
/// <param name="id">要查询的实体ID</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>查询到的实体,如果不存在则返回 null</returns>
|
|
|
/// <returns>查询到的实体,如果不存在则返回 null</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 使用主键进行查询,性能最优
|
|
|
/// 使用主键进行查询,性能最优
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<T?> GetByIdAsync(string id, CancellationToken cancellationToken = default); |
|
|
Task<T?> GetByIdAsync(string id, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 查询所有实体
|
|
|
/// 查询所有实体
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>所有实体的集合</returns>
|
|
|
/// <returns>所有实体的集合</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 注意:对于大数据量的表,建议使用分页查询
|
|
|
/// 注意:对于大数据量的表,建议使用分页查询
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default); |
|
|
Task<IEnumerable<T>> GetAllAsync(Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 根据条件查询实体
|
|
|
/// 根据条件查询实体
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>符合条件的实体集合</returns>
|
|
|
/// <returns>符合条件的实体集合</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
@ -140,13 +143,14 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
/// 使用 LINQ 表达式树构建查询条件
|
|
|
/// 使用 LINQ 表达式树构建查询条件
|
|
|
/// 条件查询会被转换为 SQL 语句在数据库端执行
|
|
|
/// 条件查询会被转换为 SQL 语句在数据库端执行
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<IEnumerable<T>> FindAsync(Expression<Func<T, bool>> predicate, CancellationToken cancellationToken = default); |
|
|
Task<IEnumerable<T>> FindAsync(Expression<Func<T, bool>> predicate, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 分页查询实体
|
|
|
/// 分页查询实体
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="pageNumber">页码,从1开始</param>
|
|
|
/// <param name="pageNumber">页码,从1开始</param>
|
|
|
/// <param name="pageSize">每页记录数</param>
|
|
|
/// <param name="pageSize">每页记录数</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>分页查询结果,包含总记录数和当前页数据</returns>
|
|
|
/// <returns>分页查询结果,包含总记录数和当前页数据</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
@ -154,7 +158,7 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
/// 分页查询可以有效减少数据传输量,提高性能
|
|
|
/// 分页查询可以有效减少数据传输量,提高性能
|
|
|
/// 建议在查询大数据量时使用
|
|
|
/// 建议在查询大数据量时使用
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<(int TotalCount, IEnumerable<T> Items)> GetPagedAsync(int pageNumber, int pageSize, CancellationToken cancellationToken = default); |
|
|
Task<(int TotalCount, IEnumerable<T> Items)> GetPagedAsync(int pageNumber, int pageSize, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 根据条件分页查询实体
|
|
|
/// 根据条件分页查询实体
|
|
@ -162,6 +166,7 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="pageNumber">页码,从1开始</param>
|
|
|
/// <param name="pageNumber">页码,从1开始</param>
|
|
|
/// <param name="pageSize">每页记录数</param>
|
|
|
/// <param name="pageSize">每页记录数</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>分页查询结果,包含总记录数和当前页数据</returns>
|
|
|
/// <returns>分页查询结果,包含总记录数和当前页数据</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
@ -172,12 +177,14 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
Expression<Func<T, bool>> predicate, |
|
|
Expression<Func<T, bool>> predicate, |
|
|
int pageNumber, |
|
|
int pageNumber, |
|
|
int pageSize, |
|
|
int pageSize, |
|
|
|
|
|
Func<IQueryable<T>, IQueryable<T>>? include = null, |
|
|
CancellationToken cancellationToken = default); |
|
|
CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 查询单个实体
|
|
|
/// 查询单个实体
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>查询到的实体,如果不存在则返回 null</returns>
|
|
|
/// <returns>查询到的实体,如果不存在则返回 null</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
@ -185,31 +192,33 @@ namespace CellularManagement.Domain.Repositories.Base |
|
|
/// 如果查询结果包含多个实体,将返回第一个
|
|
|
/// 如果查询结果包含多个实体,将返回第一个
|
|
|
/// 建议在确定只会返回一个结果时使用
|
|
|
/// 建议在确定只会返回一个结果时使用
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<T?> FirstOrDefaultAsync(Expression<Func<T, bool>> predicate, CancellationToken cancellationToken = default); |
|
|
Task<T?> FirstOrDefaultAsync(Expression<Func<T, bool>> predicate, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 查询实体是否存在
|
|
|
/// 查询实体是否存在
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>是否存在符合条件的实体</returns>
|
|
|
/// <returns>是否存在符合条件的实体</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 使用 EXISTS 语句在数据库端执行,性能优于获取完整实体
|
|
|
/// 使用 EXISTS 语句在数据库端执行,性能优于获取完整实体
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<bool> AnyAsync(Expression<Func<T, bool>> predicate, CancellationToken cancellationToken = default); |
|
|
Task<bool> AnyAsync(Expression<Func<T, bool>> predicate, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 统计符合条件的实体数量
|
|
|
/// 统计符合条件的实体数量
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
/// <param name="predicate">查询条件表达式</param>
|
|
|
|
|
|
/// <param name="include">查询条件表达式</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <param name="cancellationToken">取消令牌,用于取消异步操作</param>
|
|
|
/// <returns>符合条件的实体数量</returns>
|
|
|
/// <returns>符合条件的实体数量</returns>
|
|
|
/// <remarks>
|
|
|
/// <remarks>
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
|
|
|
/// 使用 COUNT 语句在数据库端执行,性能优于获取完整实体
|
|
|
/// 使用 COUNT 语句在数据库端执行,性能优于获取完整实体
|
|
|
/// </remarks>
|
|
|
/// </remarks>
|
|
|
Task<int> CountAsync(Expression<Func<T, bool>> predicate, CancellationToken cancellationToken = default); |
|
|
Task<int> CountAsync(Expression<Func<T, bool>> predicate, Func<IQueryable<T>, IQueryable<T>>? include = null, CancellationToken cancellationToken = default); |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 执行SQL复制查询
|
|
|
/// 执行SQL复制查询
|
|
|