IRepository.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace GreenTree.Nachtragsmanagement.Core.Data
  7. {
  8. public interface IRepository<T> where T : BaseEntity
  9. {
  10. /// <summary>
  11. /// Get entity by identifier
  12. /// </summary>
  13. /// <param name="id">Identifier</param>
  14. /// <returns>Entity</returns>
  15. T GetById(object id);
  16. /// <summary>
  17. /// Insert entity
  18. /// </summary>
  19. /// <param name="entity">Entity</param>
  20. void Insert(T entity);
  21. /// <summary>
  22. /// Insert entities
  23. /// </summary>
  24. /// <param name="entities">Entities</param>
  25. void Insert(IEnumerable<T> entities);
  26. /// <summary>
  27. /// Update entity
  28. /// </summary>
  29. /// <param name="entity">Entity</param>
  30. void Update(T entity);
  31. /// <summary>
  32. /// Delete entity
  33. /// </summary>
  34. /// <param name="entity">Entity</param>
  35. void Delete(T entity);
  36. /// <summary>
  37. /// Delete entities
  38. /// </summary>
  39. /// <param name="entities">Entities</param>
  40. void Delete(IEnumerable<T> entities);
  41. /// <summary>
  42. /// Gets a table
  43. /// </summary>
  44. IQueryable<T> Table { get; }
  45. /// <summary>
  46. /// Gets a table with "no tracking" enabled (EF feature) Use it only when you load record(s) only for read-only operations
  47. /// </summary>
  48. IQueryable<T> TableNoTracking { get; }
  49. }
  50. }