using System.Linq.Expressions; namespace XLIMS.CONTRACT { // Интерфейс generic-репозитория public interface IGenericRepository where TEntity : class { Task GetByIdAsync(int id); Task> GetAllAsync(); Task> WhereAsync(Expression> predicate); IEnumerable Find(Expression> predicate); Task> FindAsync(Expression> predicate); Task SingleOrDefaultAsync(Expression> predicate); Task AddAsync(TEntity entity); Task AddRangeAsync(IEnumerable entities); Task UpdateAsync(TEntity entity); Task UpdateRangeAsync(IEnumerable entities); Task RemoveAsync(TEntity entity); Task RemoveRangeAsync(IEnumerable entities); Task CountAsync(Expression> predicate = null); event Action SetChanged; Task SaveChangesAsync(); int SaveChanges(); } }