无法找到所需的.NET Framework数据提供。 它可能没有安装。 - 当下列MVC3

2019-05-12 04:00发布

我下面的ASP.NET MVC 3音乐商店应用程序的教程,但我一直陷在第4部分: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4 。 它不断告诉我,我没有安装SQL数据提供者的更多信息:

确切的错误:

System.ArgumentException was unhandled by user code
  Message=Unable to find the requested .Net Framework Data Provider.  It may not be installed.
  Source=System.Data
  StackTrace:
       at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
       at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name)
       at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
       at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
       at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
       at System.Data.Entity.Internal.InternalContext.Initialize()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
  InnerException: 

我已经添加了参考System.Data.SqlServerCe - 仍然有同样的错误。 任何指导意见将非常感激

Answer 1:

我能够用的NuGet来解决类似这样的问题在Visual Studio 2010。

转到工具>库包管理器>管理的NuGet软件包的解决方案...

在对话框中,搜索“EntityFramework.SqlServerCompact”。 你会发现与描述一包“允许的SQL Server Compact 4.0与实体框架一起使用。” 安装该软件包。

类似如下的元素将被插入在你的web.config:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="System.Data.SqlServerCe.4.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>


Answer 2:

我遇到过同样的问题。 我用C检查System.Data.SqlServerCe的版本:\ WINDOWS \组装。 这是3.5.1.0。 所以,我从下面的链接(86)安装的版本4.0.0和工作正常。

http://www.microsoft.com/download/en/details.aspx?id=17876



Answer 3:

添加这些行到你的web.config文件:

<system.data>
    <DbProviderFactories>
               <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,  Version=6.6.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
    </DbProviderFactories>
</system.data>

从MySQL提供商更改为SQL Server或任何数据库提供您所连接。



Answer 4:

这个错误主要是由于与框架安装EI 86 VS 64位处理器架构不兼容的解决方案:转到解决方案资源管理器>项目属性>编译选项卡>高级编译选项有你有从X64目标CPU改为X86保存新的设置并重新编译解。 我试了一下,效果很不错。 希望这会帮助你。 马利克



Answer 5:

我有一个similer问题上的SqlClient WCF服务。 我的解决办法是把在客户端的app.config线

  <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>

希望它可以帮助的人..



Answer 6:

对我来说,这个问题是由连接问题到SQL数据库造成的。 我只是断开,然后重新连接从设计视图中的SQL数据源。 我回来了启动和运行。 希望这个作品给大家。



Answer 7:

我有以下MvcMusicStore教程时同样在第4部分,并用此代替给定的连接字符串:

添加名称= “MusicStoreEntities” 的connectionString = “数据源= \ SQLEXPRESS;集成安全性= SSPI;数据库= MvcMusicStore;用户ID = SA;密码=” 的providerName = “System.Data.SqlClient的”/>

它为我工作。



Answer 8:

这发生在我身上,因为我创造这是试图用一个新的项目System.Web.Providers DefaultMembershipProvider入会。 我的数据库和应用被设置为使用System.Web.Security.SqlMembershipProvider代替。 我不得不更新提供程序和连接字符串(因为这提供商似乎有一些奇怪的连接字符串的要求)得到它的工作。



文章来源: Unable to find the requested .Net Framework Data Provider. It may not be installed. - when following mvc3 asp.net tutorial