Blog
39 строк · 1.0 Кб
1using Blog.Application.Common.Interfaces.Repositories;
2using Blog.Domain.Common;
3using Blog.Persistence.Contexts;
4using Microsoft.EntityFrameworkCore;
5
6namespace Blog.Persistence.Repositories;
7
8public class Repository<T> : IRepository<T> where T : BaseEntity
9{
10protected readonly ApplicationDbContext DbContext;
11
12protected Repository(ApplicationDbContext dbContext) =>
13DbContext = dbContext;
14
15public IQueryable<T> Entities => DbContext.Set<T>();
16
17public async Task<T?> GetByIdAsync(Guid id)
18{
19return await DbContext.Set<T>().FindAsync(id);
20}
21
22public async Task UpdateAsync(T entity)
23{
24DbContext.Entry(entity).State = EntityState.Modified;
25await DbContext.SaveChangesAsync();
26}
27
28public async Task DeleteAsync(T entity)
29{
30DbContext.Set<T>().Remove(entity);
31await DbContext.SaveChangesAsync();
32}
33
34public async Task AddAsync(T entity)
35{
36await DbContext.Set<T>().AddAsync(entity);
37await DbContext.SaveChangesAsync();
38}
39}