Blog

Форк
0
39 строк · 1.0 Кб
1
using Blog.Application.Common.Interfaces.Repositories;
2
using Blog.Domain.Common;
3
using Blog.Persistence.Contexts;
4
using Microsoft.EntityFrameworkCore;
5

6
namespace Blog.Persistence.Repositories;
7

8
public class Repository<T> : IRepository<T> where T : BaseEntity
9
{
10
    protected readonly ApplicationDbContext DbContext;
11
    
12
    protected Repository(ApplicationDbContext dbContext) =>
13
        DbContext = dbContext;
14

15
    public IQueryable<T> Entities => DbContext.Set<T>();
16

17
    public async Task<T?> GetByIdAsync(Guid id)
18
    {
19
        return await DbContext.Set<T>().FindAsync(id);
20
    }
21
    
22
    public async Task UpdateAsync(T entity)
23
    {
24
        DbContext.Entry(entity).State = EntityState.Modified;
25
        await DbContext.SaveChangesAsync();
26
    }
27

28
    public async Task DeleteAsync(T entity)
29
    {
30
        DbContext.Set<T>().Remove(entity);
31
        await DbContext.SaveChangesAsync();
32
    }
33
    
34
    public async Task AddAsync(T entity)
35
    {
36
        await DbContext.Set<T>().AddAsync(entity);
37
        await DbContext.SaveChangesAsync();
38
    }
39
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.