How can the repository pattern be implemented using ADO.NET Entity Framework?


When teams are using Domain Driven Design or just using Domain Modeling, the most common type of data access layer uses the Repository pattern. This layer in the application abstracts how the domain objects are saved and retrieved. Due to a number of challenges that can be explained here or in the comments (feel free to join in), implementing the repository pattern is not straight forward when using EF. It would be nice to be able to step through an implementation.