找不到请求的.Net Framework数据提供程序.可能未安装



我有一个在ASP.NET MVC 3上运行的应用程序,它的实体框架代码优先。在开发过程中,我使用了一个SQL Compact数据库,但在将其移动到我的虚拟服务器时,我正试图以SQL Express为目标。

最初有一些问题与"CREATE DATABASE in master"错误有关,我通过将SQL Compact数据库中的模型提取到SQL脚本中,并在服务器上执行该脚本来创建数据库,从而解决了这个问题。

我创建了一个新的连接字符串来指向SQL Express实例,它使用EF格式:

<add name="LouiseClarkEntities" connectionString="metadata=res://*/Models.LouiseClark.csdl|res://*/Models.LouiseClark.ssdl|res://*/Models.LouiseClark.msl;provider=System.Data.EntityClient;provider connection string=&quot;Data Source=.SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>&quot;" providerName="System.Data.EntityClient" />

我现在在导航到使用DB的页面时遇到的错误是:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

我已经在服务器上安装了Entity Framework 4.1,试图看看这是否能解决问题,但它似乎没有起到多大作用。

错误页面上堆栈跟踪的代码段:

[ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.]
   System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1420567
   System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +35
[ArgumentException: The specified store provider cannot be found in the configuration, or is not valid.]

任何帮助都将不胜感激,因为这已经困扰了我好几天了!

谢谢,

Chris

首先使用带有代码的正常连接字符串。

<add name="LouiseClarkEntities" connectionString="Data Source=.SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>" providerName="System.Data.SqlClient" />

关于第二个问题,以及第一个问题的部分原因。。。

你做错的是which I got around by extracting the model from the SQL Compact database into an SQL script and executing that on the server to create the DB.

您应该为此使用迁移脚本,然后在PM控制台中使用Update-Database -Script来转储所需内容,然后将其部署到服务器数据库中。

问题是CF有自己的表和数据需要正确初始化。如果这不匹配,你最终会得到这样的结果。

相关内容

最新更新