Jen*_*ens 55 c# sql-server visual-web-developer dataprovider asp.net-mvc-3
背景信息:
我正在使用Microsoft Visual Web Developer 2010 Express.
关于我(缺乏)经验的信息:我正在尝试解决的第一个教程中出现的问题.
一些额外的信息:
问题描述:
我正在尝试完全遵循"介绍到ASP.NET MVC 3"教程中的步骤,并且我在第5部分的第一步遇到问题- 添加MoviesController:
当我尝试使用教程中显示的确切设置添加"MoviesController"并单击"添加"时,我收到以下错误:
"无法检索元数据MvcMovie.Models.Movie.无法找到所请求的.NET Framework数据提供.它可能没有安装."
Google在搜索"无法找到所请求的.Net Framework数据提供程序"这一短语时给出了大量结果,但到目前为止还没有解决问题.
我尝试过的:
我认为SQL-Server没有安装,所以我从Visual-Studio Express ISO安装了一个错误然后我从ISO运行修复它声称所有15点包括SQL Server Express修复和.NET 4 Framework成功地完成了.
我已经运行了The_.NET_Framework_Setup_Verification_Tool,它成功完成了所有事情. http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx
在提到(重新)安装和修复之后,我重新创建了项目,并按照教程中的描述执行了每个步骤并得到了相同的错误.
我发现我应该在machine.config中查找DbProviderFactories,
项目的root-Web.config具有以下条目
<connectionStrings>
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
Run Code Online (Sandbox Code Playgroud)
我的机器配置文件只有一个DbProviderFactories条目:
<DbProviderFactories>
<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"/></DbProviderFactories>
Run Code Online (Sandbox Code Playgroud)
然后我发现了以下引用
"我们改变了DbProviderFactories.GetFactoryClasses()确定VS2010中框架提供程序的方式.它们不再列在machine.config文件中."
题:
所以也许这是错误的方向,因为我不知道下一步该尝试什么,我应该采取什么步骤来调查和解决这个问题?
顺便说一句.我安装了postgres,所以如果使用postgres而不是SQL-server将是一个简单的解决方案让我知道.对于我自己的项目,我想要使用不同的数据库(可能是postgres),但是现在我只希望能够成功通过我尝试过的第一个看似简单的教程.
小智 56
我遇到了同样的问题,所以我换了
<add name="MovieDBContext" connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
Run Code Online (Sandbox Code Playgroud)
以下内容
<add name="MovieDBContext"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;database=Movies;User ID=sa;password="
providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)
它足以让我继续工作.我也最终也会学习如何使这些类型的应用程序在某些时候与mysql一起工作,但是现在这至少应该帮助你继续学习本教程.
如果你看一下配置,你会发现安装SQL Server是一个红色的鲱鱼;
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
Run Code Online (Sandbox Code Playgroud)
我担心,SqlServerCE不是完整的SQL Server,而是SQL Server Compact Edition.我本以为会安装VS Express,但是你可以从这里下载特定的安装程序
我实际安装了SQLServerCE和Express,但本教程使用的是Compact Edition: 本教程第4部分中的一步是将您引用的部分显式添加到Web.config中.所以这是web.config的一部分.
但是从web.config中删除这个部分可以按照教程描述的方式添加Controller.虽然这意味着不再完全遵循教程,但对我来说没问题.(这导致在SQL Server Express中创建MvcMovie.Models.MovieDBContext数据库.)