Repository.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using SnapshotWinFormsApp.Application.Dtos;
  2. using SnapshotWinFormsApp.Entities.OldHotline;
  3. using SnapshotWinFormsApp.Repository.Interfaces;
  4. using SqlSugar;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace SnapshotWinFormsApp.Repository;
  12. public class Repository<T, TKey> : IRepository<T, TKey> where T : OldBaseEntity<TKey>, new()
  13. {
  14. public SqlSugarClient _db { get; }
  15. public Repository(CreateInstanceInDto inDto)
  16. {
  17. var context = inDto.DbSqlServer;
  18. _db = context.DbItems.GetValueOrDefault(inDto.Key + "SQLServerDB");
  19. }
  20. public T GetById(int id)
  21. {
  22. return _db.Queryable<T>().InSingle(id);
  23. }
  24. public async Task<List<T>> GetAllAsync(CancellationToken token)
  25. {
  26. var sql = string.Empty;
  27. try
  28. {
  29. var query = _db.Queryable<T>();
  30. sql = query.ToSqlString();
  31. return await query.ToListAsync(token);
  32. }
  33. catch (Exception e)
  34. {
  35. var msg = e.Message;
  36. throw;
  37. }
  38. }
  39. public ISugarQueryable<T> Queryable()
  40. {
  41. return _db.Queryable<T>();
  42. }
  43. public DataTable GetDataTable(string sql, List<SugarParameter> parameters = null)
  44. {
  45. return _db.Ado.GetDataTable(sql, parameters);
  46. }
  47. }