IExamRepository.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Exam.Infrastructure.Data.Entity;
  2. using FluentValidation;
  3. namespace Exam.Insfrastructure.Service.Interface
  4. {
  5. public interface IExamRepository<TEntity, TDBContext> :IRepository<TEntity> where TEntity : class, IEntity<string>, IHasCreationTime, IDataPermission, new()
  6. where TDBContext: SugarUnitOfWork, new()
  7. {
  8. public ISugarUnitOfWork<TDBContext> UOW { get; }
  9. public AbstractValidator<TEntity> Validator { get; set; }
  10. /// <summary>
  11. /// 单表新增
  12. /// </summary>
  13. /// <param name="entity"></param>
  14. /// <param name="cancellationToken"></param>
  15. /// <returns></returns>
  16. public Task AddWithValidateAsync(TEntity entity, CancellationToken cancellationToken);
  17. /// <summary>
  18. /// 单表批量新增
  19. /// </summary>
  20. /// <param name="entities"></param>
  21. /// <param name="cancellationToken"></param>
  22. /// <returns></returns>
  23. public Task AddWithValidateAsync(List<TEntity> entities, CancellationToken cancellationToken);
  24. /// <summary>
  25. /// 单表删除
  26. /// </summary>
  27. /// <param name="entityQueryRequest"></param>
  28. /// <param name="cancellationToken"></param>
  29. /// <returns></returns>
  30. public Task DeleteWithValidateAsync(EntityQueryRequest entityQueryRequest, CancellationToken cancellationToken);
  31. /// <summary>
  32. /// 单表修改
  33. /// </summary>
  34. /// <param name="entity"></param>
  35. /// <param name="cancellationToken"></param>
  36. /// <returns></returns>
  37. public Task UpdateWithValidateAsync(TEntity entity, CancellationToken cancellationToken);
  38. /// <summary>
  39. /// 单表修改
  40. /// </summary>
  41. /// <param name="entities"></param>
  42. /// <param name="cancellationToken"></param>
  43. /// <returns></returns>
  44. public Task UpdateWithValidateAsync(List<TEntity> entities, CancellationToken cancellationToken);
  45. }
  46. }