IBasicRepository.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using ECL142.BasicAuth.Domain.Entities.Commons;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Linq.Expressions;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace ECL142.BasicAuth.Domain.Repositories
  9. {
  10. /// <summary>
  11. /// 仓储基接口
  12. /// </summary>
  13. public interface IBasicRepository<TEntity, TKey> : IRepository where TEntity : Entity<TKey>
  14. {
  15. /// <summary>
  16. /// 获取所有记录列表
  17. /// </summary>
  18. /// <param name="includeDetails"></param>
  19. /// <param name="cancellationToken"></param>
  20. /// <returns></returns>
  21. Task<List<TEntity>> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default(CancellationToken));
  22. /// <summary>
  23. /// 获取总记录数
  24. /// </summary>
  25. /// <param name="cancellationToken"></param>
  26. /// <returns></returns>
  27. Task<long> GetCountAsync(CancellationToken cancellationToken = default(CancellationToken));
  28. /// <summary>
  29. /// 翻页获取记录列表
  30. /// </summary>
  31. /// <param name="skipCount"></param>
  32. /// <param name="maxResultCount"></param>
  33. /// <param name="sorting"></param>
  34. /// <param name="includeDetails"></param>
  35. /// <param name="cancellationToken"></param>
  36. /// <returns></returns>
  37. Task<List<TEntity>> GetPagedListAsync(int skipCount, int maxResultCount, string sorting, bool includeDetails = false, CancellationToken cancellationToken = default(CancellationToken));
  38. /// <summary>
  39. /// 根据筛选条件获取记录列表
  40. /// </summary>
  41. /// <param name="filter"></param>
  42. /// <param name="skipCount"></param>
  43. /// <param name="maxResultCount"></param>
  44. /// <param name="sorting"></param>
  45. /// <param name="includeDetails"></param>
  46. /// <param name="cancellationToken"></param>
  47. /// <returns></returns>
  48. Task<List<TEntity>> GetListAsync(Expression<Func<TEntity, bool>> filter, int skipCount, int maxResultCount, string sorting, bool includeDetails = true, CancellationToken cancellationToken = default);
  49. /// <summary>
  50. /// 根据筛选条件获取记录总数
  51. /// </summary>
  52. /// <param name="filter"></param>
  53. /// <param name="cancellationToken"></param>
  54. /// <returns></returns>
  55. Task<long> GetCountAsync(Expression<Func<TEntity, bool>> filter, CancellationToken cancellationToken = default);
  56. /// <summary>
  57. /// 根据主键Id获取记录
  58. /// </summary>
  59. /// <param name="id"></param>
  60. /// <param name="includeDetails"></param>
  61. /// <param name="cancellationToken"></param>
  62. /// <returns></returns>
  63. Task<TEntity> FindAsync(TKey id, bool includeDetails = true, CancellationToken cancellationToken = default(CancellationToken));
  64. /// <summary>
  65. /// 插入记录
  66. /// </summary>
  67. /// <param name="entity"></param>
  68. /// <param name="autoSave"></param>
  69. /// <param name="cancellationToken"></param>
  70. /// <returns></returns>
  71. Task<TEntity> InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  72. /// <summary>
  73. /// 批量插入记录
  74. /// </summary>
  75. /// <param name="entities"></param>
  76. /// <param name="autoSave"></param>
  77. /// <param name="cancellationToken"></param>
  78. /// <returns></returns>
  79. Task InsertManyAsync(IEnumerable<TEntity> entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  80. /// <summary>
  81. /// 更新记录
  82. /// </summary>
  83. /// <param name="entity"></param>
  84. /// <param name="autoSave"></param>
  85. /// <param name="cancellationToken"></param>
  86. /// <returns></returns>
  87. Task<TEntity> UpdateAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  88. /// <summary>
  89. /// 批量更新记录
  90. /// </summary>
  91. /// <param name="entities"></param>
  92. /// <param name="autoSave"></param>
  93. /// <param name="cancellationToken"></param>
  94. /// <returns></returns>
  95. Task UpdateManyAsync(IEnumerable<TEntity> entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  96. /// <summary>
  97. /// 根据实体删除记录
  98. /// </summary>
  99. /// <param name="entity"></param>
  100. /// <param name="autoSave"></param>
  101. /// <param name="cancellationToken"></param>
  102. /// <returns></returns>
  103. Task DeleteAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  104. /// <summary>
  105. /// 批量删除记录
  106. /// </summary>
  107. /// <param name="entities"></param>
  108. /// <param name="autoSave"></param>
  109. /// <param name="cancellationToken"></param>
  110. /// <returns></returns>
  111. Task DeleteManyAsync(IEnumerable<TEntity> entities, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  112. /// <summary>
  113. /// 根据主键删除记录
  114. /// </summary>
  115. /// <param name="id"></param>
  116. /// <param name="autoSave"></param>
  117. /// <param name="cancellationToken"></param>
  118. /// <returns></returns>
  119. Task DeleteAsync(TKey id, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  120. /// <summary>
  121. /// 根据主键,批量删除记录
  122. /// </summary>
  123. /// <param name="ids"></param>
  124. /// <param name="autoSave"></param>
  125. /// <param name="cancellationToken"></param>
  126. /// <returns></returns>
  127. Task DeleteManyAsync(IEnumerable<TKey> ids, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken));
  128. }
  129. }