Repository.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // ======================================
  2. // Author: Ebenezer Monney
  3. // Email: info@ebenmonney.com
  4. // Copyright (c) 2017 www.ebenmonney.com
  5. //
  6. // ==> Gun4Hire: contact@ebenmonney.com
  7. // ======================================
  8. using DAL.Repositories.Interfaces;
  9. using Microsoft.EntityFrameworkCore;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Linq.Expressions;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. namespace DAL.Repositories
  17. {
  18. public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
  19. {
  20. protected readonly DbContext _context;
  21. protected readonly DbSet<TEntity> _entities;
  22. public Repository(DbContext context)
  23. {
  24. _context = context;
  25. _entities = context.Set<TEntity>();
  26. }
  27. public virtual void Add(TEntity entity)
  28. {
  29. _entities.Add(entity);
  30. }
  31. public virtual void AddRange(IEnumerable<TEntity> entities)
  32. {
  33. _entities.AddRange(entities);
  34. }
  35. public virtual void Update(TEntity entity)
  36. {
  37. _entities.Update(entity);
  38. }
  39. public virtual void UpdateRange(IEnumerable<TEntity> entities)
  40. {
  41. _entities.UpdateRange(entities);
  42. }
  43. public virtual void Remove(TEntity entity)
  44. {
  45. _entities.Remove(entity);
  46. }
  47. public virtual void RemoveRange(IEnumerable<TEntity> entities)
  48. {
  49. _entities.RemoveRange(entities);
  50. }
  51. public virtual int Count()
  52. {
  53. return _entities.Count();
  54. }
  55. public virtual IEnumerable<TEntity> Find(Expression<Func<TEntity, bool>> predicate)
  56. {
  57. return _entities.Where(predicate);
  58. }
  59. public virtual TEntity GetSingleOrDefault(Expression<Func<TEntity, bool>> predicate)
  60. {
  61. return _entities.SingleOrDefault(predicate);
  62. }
  63. public virtual TEntity Get(int id)
  64. {
  65. return _entities.Find(id);
  66. }
  67. public virtual IEnumerable<TEntity> GetAll()
  68. {
  69. return _entities.ToList();
  70. }
  71. }
  72. }