This is duplicate of many topics already discussed on SO but I agree that some of them can be hard to find because they are nested in other question
- What’s the point of Generic repository in EF 4.1
- Challenges with testable and mockable code in EF
- Another question about challenges with mocking EF code
- Implementing custom IDbSet
- Another question resulting in discussion about repository and unit of work
I hope this will give you some answers. If not, don’t hesitate to ask for more information either here or in a new question.