Removing Entity Framework Reference from MVC project
<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>