Implementing the Repository Pattern
In my opinion using the repository pattern is absolutely fine, for a number of reasons, not limited to:


It enables unit testing
Allows you to change EF for a another DB technology


The detail that you have to be careful of using the base class is that you make sure that you declare properties/variables via the interface and not via the base class. So consider this:

Good

public class Test{
    private IRepository&lt;MyClass&gt; _repo;
}


Bad

public class Test{
    private BaseRepository&lt;MyClass&gt; _repo;
}




With the actual code, I would suggest a number of changes:


The interface should have full CRUD operations
Try and use the same name for fetching a record (Consider Get() and Get(id) vs All() and Get(1). It makes it more natural to consumers)
The class Repository should be marked as abstract to stop you using it directly
The class Repository should probably be named EFBaseRepository


Typically, when I implement the pattern I create the interface followed by a class called BaseRepository that implements all the methods. The methods no nothing more than throw a NotSupportedException/NotImplementedException. This is because I might only want consumers to have read/update but not create. It does depend on the context of the application.