BaseRepository.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using SnapshotWinFormsApp.Entities.NewHotline;
  2. using SnapshotWinFormsApp.Repository.Interfaces;
  3. using SqlSugar;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace SnapshotWinFormsApp.Repository;
  10. public class BaseRepository<T> : IBaseRepository<T> where T : Entity, new()
  11. {
  12. private readonly SqlSugarClient _db;
  13. public BaseRepository(DbSqlServer context, string key)
  14. {
  15. _db = context.DbItems.GetValueOrDefault(key + "PGSQLDB");
  16. }
  17. public async Task<List<T>> GetAllAsync(CancellationToken token)
  18. {
  19. return _db.Queryable<T>().ToList();
  20. }
  21. public T GetById(int id)
  22. {
  23. return _db.Queryable<T>().InSingle(id);
  24. }
  25. public async Task<string> InsertAsync(T entity, CancellationToken token)
  26. {
  27. entity.InitId();
  28. await _db.Insertable(entity).ExecuteCommandAsync(token);
  29. return entity.Id;
  30. }
  31. public ISugarQueryable<T> Queryable()
  32. {
  33. return _db.Queryable<T>();
  34. }
  35. public void Update(T entity)
  36. {
  37. _db.Updateable<T>(entity).ExecuteCommand();
  38. }
  39. }