Why do you have an issue with the static classes in your repository class. A repository class is generally used to decouple your data access code from the rest of your application. This essentially allows you to replace your data access provider without to much effort by re-implementing your concrete repository classes for a new data access provider.
You can use DI to inject your repository class into either your controller or a service class.
If you really want to get your head around DI I would recommend reading "Dependency Injection in .Net" by Mark Seeman.