title: Removing Entity Framework Reference from MVC project
body: <p><em>Apologies if this has already been answered, but after 2 hours of research I am yet to find a definitive answer to this issue. Hopefully asking will yield results.</em></p>
  
  <p>I'm "somewhat better than beginner" with MVC and EF, but I do understand overall application architecture. You see, for even greater Separation of Concerns and future planned changes, I'd like to <strong>decouple</strong> my MVC project from Entity Framework. Here's what I have so far: </p>
  
  <ul>
  <li>Models project (full of well-annotated POCOs, as containers, no business logic)</li>
  <li>DataAccess project (references my Models project, and Entity Framework)</li>
  <li>MVC Web project (which references my Models project only)</li>
  </ul>
  
  <p>I've already created my Repository pattern (in the DataAccess project), and tested it using a separate UnitTest project. It all works.</p>
  
  <p>Problem is, the consumer (the UnitTest project, in this case) still needs a nuget <strong>reference</strong> to Entity Framework (same with the MVC Web project). When I remove the EF reference from my Test project (and instead hard-code my connection string when passing it into my DataAccess project), I get this error:</p>
  
  <blockquote>
    <p>No Entity Framework provider found for the ADO.NET provider with
    invariant name 'System.Data.SqlClient'. Make sure the provider is
    registered in the 'entityFramework' section of the application config
    file.</p>
  </blockquote>
  
  <p>How can I design this so I can completely <strong>remove the Entity Framework reference</strong> from the Repository consumer (UnitTest or MVC Web projects)? I want to do everything via my Repository, without the MVC project knowing anything about my ORM technology.</p>