Вот интерфейс:
Код: Выделить всё
public interface IBaseRepository
{
IQueryable GetAll();
Task CreateAsync(TEntity entity);
Task UpdateAsync(TEntity entity);
Task DeleteAsync(TEntity entity);
}
Код: Выделить всё
public class BaseRepository : IBaseRepository where TEntity : class
{
private readonly ApplicationDbContext _dbContext;
public BaseRepository(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task CreateAsync(TEntity entity)
{
if (entity == null)
throw new ArgumentException("Entity is null");
await _dbContext.AddAsync(entity);
await _dbContext.SaveChangesAsync();
return entity;
}
public async Task DeleteAsync(TEntity entity)
{
if (entity == null)
throw new ArgumentException("Entity is null");
_dbContext.Remove(entity);
await _dbContext.SaveChangesAsync();
return entity;
}
public IQueryable GetAll()
{
return _dbContext.Set();
}
public async Task UpdateAsync(TEntity entity)
{
if (entity == null)
throw new ArgumentException("Entity is null");
_dbContext.Update(entity);
await _dbContext.SaveChangesAsync();
return entity;
}
}
Код: Выделить всё
reports = await _reportRepository.GetAll()
.Where(x => x.UserId == userId)
.ToArrayAsync();
Подробнее здесь: https://stackoverflow.com/questions/787 ... repository