title: EF4 with MVC3 - Do I need The Repository Pattern?
body: <p>I have recently learned of the Repository and Unit of Work Design Patterns and thought that I would implement them in a new EF4 MVC3 project, since abstraction is generally good.</p>
  
  <p>As I add them to the project, I am wondering if the juice is worth the proverbial squeeze, given the following:</p>
  
  <ul>
  <li>It is EXTREMELY unlikely that the underlying data access mechanism will change from EF4.</li>
  <li>This level of abstraction will require more overhead/confusion to the project and to other developers on the team.</li>
  </ul>
  
  <p>The only real benefit I see to using the Repository pattern is for unit testing the application.  Abstracting away the data store doesn't seem useful since I know the datastore won't change, and further, that EF4 already provides a pretty good abstraction (I just call .AddObject() and it looks like I am modifying an in-memory collection and I just call .SaveChanges() which already provides the unit of work pattern).</p>
  
  <p>Should I even bother implementing this abstraction?  I feel like there must be some massive benefit that I am missing, but it just doesn't feel like I need to go down this route.  I am willing to be convinced otherwise; can someone make a case?  Thanks.</p>