title: ASP.NET MVC 3 - Unable to find the requested .Net Framework Data Provider
body: <p><strong><em>Background-info:</em></strong>  </p>
  
  <p>I'm using Microsoft Visual Web Developer 2010 Express.<br>
  Info about my (lack of) experience: the problem occured within the first tutorial that I'm trying to work through.   </p>
  
  <p>Some additional-info:</p>
  
  <ul>
  <li>I'm comfortable with C#, Postgres, Rails (so MVC &amp; Web-apps are not new to me)</li>
  <li>I have <strong>no</strong> experience with ASP.NET or SQL Server  </li>
  </ul>
  
  <p><strong><em>Problem Description:</em></strong></p>
  
  <p>I'm trying to following exactly the steps from the <a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs" rel="noreferrer">"Intro to ASP.NET MVC 3"</a>-tutorial and I'm running into a problem at <a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part5-cs" rel="noreferrer">the first step from part 5 - Adding the MoviesController: </a></p>
  
  <p>When I'm trying to add the "MoviesController" with the exact settings that are shown in the tutorial and click 'Add' I get the following error:</p>
  
  <blockquote>
    <p>"Unable to retrieve metadata for
    MvcMovie.Models.Movie. <strong>Unable to
    find the requested .Net Framework Data
    Provider.</strong> It may not be installed."</p>
  </blockquote>
  
  <p>Google gave a ton of results when searching for the phrase "Unable to find the requested .Net Framework Data Provider", but nothing has solved the problem so far.  </p>
  
  <p><strong><em>What I've tried:</em></strong></p>
  
  <p>I think SQL-Server was not installed so I installed it from the Visual-Studio Express ISO- got an error then I've run a repair from the ISO and it claimed that all 15 points including SQL Server Express repair &amp;.NET 4 Framework went through successfully.</p>
  
  <p>I've run the The_.NET_Framework_Setup_Verification_Tool which succeeded for everything.
  <a href="http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx" rel="noreferrer">http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx</a></p>
  
  <p>After the mentioned (re-)installing &amp; repairing I recreated the Project and followed every step as described in the tutorial and got the same error. </p>
  
  <p>I found that I should look for DbProviderFactories in machine.config,</p>
  
  <p>The root-Web.config of the Project has the following entries</p>
  
  <pre><code>  &lt;connectionStrings&gt;
      &lt;add name="MovieDBContext"
       connectionString="Data Source=|DataDirectory|Movies.sdf"
       providerName="System.Data.SqlServerCe.4.0"/&gt;
  </code></pre>
  
  <p>My machine config-file has only one DbProviderFactories entry:</p>
  
  <pre><code>&lt;DbProviderFactories&gt;
  &lt;add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/&gt;&lt;/DbProviderFactories&gt;
  </code></pre>
  
  <p>then I found the following quote</p>
  
  <blockquote>
    <p>"we have changed the way
    DbProviderFactories.GetFactoryClasses()
    determines the framework providers in
    VS2010. They are no longer listed in
    the machine.config file. "</p>
  </blockquote>
  
  <p>from <a href="http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a" rel="noreferrer">http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a</a></p>
  
  <p><strong><em>Question:</em></strong>  </p>
  
  <p><strong>So perhaps this is the wrong direction and since I have no clue what to try next, what steps should I take to investigate &amp; solve this problem?</strong><br>
  Btw. I have postgres installed, so if using postgres instead of SQL-server would be an easy solution let me know. For my own projects I would want to use a different DB anyway (probably postgres), but for now I would just want to be able to get successfully through the first and seemingly simple tutorial I've tried.</p>