so we should try to make it as powerfull as possible. Also because LINQ is cool I’m copying some of it’s namings. public interface IReadRepository<T> where T : class { T FirstOrDefault(Expression<Func<T, bool>> predicate); IEnumerable<T> GetAll(Expression<Func<T, bool>> predicate); IEnumerable<T> GetAll(Expression<Func<T, bool>> predicate, Expression<Func<T, object>> orderBy, bool descending = false); int Count(Expression<Func<T, bool>> predicate); bool Any(Expression<Func<T, bool>> predicate); } projName.Data.Repositories.ReadRepository 7 http://pt.linkedin.com/in/diogogcunha/