Repository pattern is usefult for decoupling entity operations form presentation, which allows easy mocking and unit testing.
“The Repository will delegate to the appropriate infrastructure services to get the job done. Encapsulating in the mechanisms of storage, retrieval and query is the most basic feature of a Repository implementation”
“Most common queries should also be hard coded to the Repositories as methods.”
Source: PoEAA [Fowler] and DDD [Evans]
Which MVC.NET to implement repository pattern Controller would have 2 constructors on parameterless for framework to call, and the second one which takes repository as an input:
class myController: Controller
private IMyRepository repository;
public myController(IMyRepository repository) // overloaded constructor
{
this.repository = repository;
}
public myController() // default constructor for framework to call
{
myController(new someRepository()); //concreate implementation
}
...
public ActionResult Load()
{
var myData = repository.Load(); // loading data from repository
}
}