Skip to content
Loading
How to use save button to make save in both cases insert and  
  •   
    1. namespace TAB.Data.InfraStructure  
    2. {  
    3. public class EFRepository : IRepository where T : class  
    4. {  
    5. protected TabDbContext _context { getset; }  
    6. public EFRepository(TabDbContext context)  
    7. {  
    8. _context = context;  
    9. }  
    10. public virtual T Add(T t)  
    11. {  
    12. _context.Set().Add(t);  
    13. _context.SaveChanges();  
    14. return t;  
    15. }  
    16. public virtual async Task AddAsyn(T t)  
    17. {  
    18. _context.Set().Add(t);  
    19. await _context.SaveChangesAsync();  
    20. return t;  
    21. }  
    22. public virtual T Find(Expressionbool>> match)  
    23. {  
    24. return _context.Set().SingleOrDefault(match);  
    25. }  
    26. public virtual async Task FindAsync(Expressionbool>> match)  
    27. {  
    28. return await _context.Set().SingleOrDefaultAsync(match);  
    29. }  
    30. public ICollection FindAll(Expressionbool>> match)  
    31. {  
    32. return _context.Set().Where(match).ToList();  
    33. }  
    34. public async Task> FindAllAsync(Expressionbool>> match)  
    35. {  
    36. return await _context.Set().Where(match).ToListAsync();  
    37. }  
    38. public virtual T Update(T t, object key)  
    39. {  
    40. if (t == null)  
    41. return null;  
    42. T exist = _context.Set().Find(key);  
    43. if (exist != null)  
    44. {  
    45. _context.Entry(exist).CurrentValues.SetValues(t);  
    46. _context.SaveChanges();  
    47. }  
    48. return exist;  
    49. }  
    50. public virtual async Task UpdateAsyn(T t, object key)  
    51. {  
    52. if (t == null)  
    53. return null;  
    54. T exist = await _context.Set().FindAsync(key);  
    55. if (exist != null)  
    56. {  
    57. _context.Entry(exist).CurrentValues.SetValues(t);  
    58. await _context.SaveChangesAsync();  
    59. }  
    60. return exist;  
    61. }  
    62. public virtual void Save()  
    63. {  
    64. _context.SaveChanges();  
    65. }  
    66. public async virtual Task<int> SaveAsync()  
    67. {  
    68. return await _context.SaveChangesAsync();  
    69. }  
    70. public virtual IQueryable FindBy(Expressionbool>> predicate)  
    71. {  
    72. IQueryable query = _context.Set().Where(predicate);  
    73. return query;  
    74. }  

    1 Reply

    Know the answer? Post it — somebody with the same question will find it here.