using System.Linq.Expressions; namespace Marco.Pms.DataAccess.Repository.IRepository { public interface IRepository where T : class { // T - Category IEnumerable GetAll(Expression>? filter, string? includeProperties = null); //T GetFirstOrDefault(); T Get(Expression> filter, string? includeProperties = null, bool tracked = false); Task GetAsync(Expression> filter, bool tracked = false, params Expression>[] includeProperties); void Add(T entity); void Remove(T entity); void RemoveRange(IEnumerable entity); } }