IRepositorySqlSugar.cs 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Linq.Expressions;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using SqlSugar;
  8. using XF.Domain.Entities;
  9. namespace XF.Domain.Repository
  10. {
  11. public interface IRepositorySqlSugar<TEntity, TKey> : IRepositoryWithTKey<TEntity, string>
  12. where TEntity : class, IEntity<string>, new()
  13. {
  14. Task<(int Total, List<TEntity> Items)> QueryPagedAsync(
  15. Expression<Func<TEntity, bool>> predicate,
  16. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>> orderByCreator,
  17. int pageIndex,
  18. int pageSize,
  19. bool permissionVerify = false,
  20. params (bool isWhere, Expression<Func<TEntity, bool>> expression)[] whereIfs);
  21. Task<(int Total, List<TEntity> Items)> QueryPagedAsync(Expression<Func<TEntity, bool>> predicate,
  22. int pageIndex,
  23. int pageSize,
  24. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>>? includes = null,
  25. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>>? orderByCreator = null,
  26. bool permissionVerify = false,
  27. params (bool isWhere, Expression<Func<TEntity, bool>> expression)[] whereIfs);
  28. Task<List<TEntity>> QueryExtAsync(
  29. Expression<Func<TEntity, bool>> predicate,
  30. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>>? includes = null,
  31. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>>? orderByCreator = null,
  32. bool permissionVerify = false,
  33. params (bool isWhere, Expression<Func<TEntity, bool>> expression)[] whereIfs);
  34. Task<List<TEntity>> QueryExtAsync(
  35. Expression<Func<TEntity, bool>> predicate,
  36. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>> includes,
  37. bool permissionVerify = false);
  38. Task<TEntity> GetExtAsync(
  39. Expression<Func<TEntity, bool>> predicate,
  40. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>> includes,
  41. bool permissionVerify = false);
  42. Task<TEntity> GetExtAsync(
  43. TKey id,
  44. Func<ISugarQueryable<TEntity>, ISugarQueryable<TEntity>> includes,
  45. bool permissionVerify = false);
  46. TEntity Get(TKey id);
  47. TEntity Get(Expression<Func<TEntity, bool>> predicate);
  48. Task UpdateAsync(TEntity entity, bool ignoreNullColumns = true, CancellationToken cancellationToken = default);
  49. ISugarQueryable<TEntity> Queryable(bool permissionVerify = false, bool includeDeleted = false);
  50. UpdateNavTaskInit<TEntity, TEntity> UpdateNav(TEntity entity);
  51. UpdateNavTaskInit<TEntity, TEntity> UpdateNav(TEntity entity, UpdateNavRootOptions options);
  52. UpdateNavTaskInit<TEntity, TEntity> UpdateNav(List<TEntity> entities);
  53. UpdateNavTaskInit<TEntity, TEntity> UpdateNav(List<TEntity> entities, UpdateNavRootOptions options);
  54. /// <summary>
  55. /// 未实现统一为子表赋值creatorId, creatorOrg等字段,插入前需手动赋值
  56. /// </summary>
  57. InsertNavTaskInit<TEntity, TEntity> AddNav(TEntity entity);
  58. InsertNavTaskInit<TEntity, TEntity> AddNav(TEntity entity, InsertNavRootOptions options);
  59. /// <summary>
  60. /// 未实现统一为子表赋值creatorId, creatorOrg等字段,插入前需手动赋值
  61. /// </summary>
  62. InsertNavTaskInit<TEntity, TEntity> AddNav(List<TEntity> entities);
  63. InsertNavTaskInit<TEntity, TEntity> AddNav(List<TEntity> entities, InsertNavRootOptions options);
  64. DeleteNavTaskInit<TEntity, TEntity> RemoveNav(TEntity entity);
  65. DeleteNavTaskInit<TEntity, TEntity> RemoveNav(List<TEntity> entities);
  66. DeleteNavTaskInit<TEntity, TEntity> RemoveNav(Expression<Func<TEntity,bool>> predicate);
  67. }
  68. }