Не удалось найти запрашиваемый поставщик данных .Net Framework. Он не может быть установлен. - при следующем руководстве mvc3 asp.net
Я следую учебнику по приложению в магазине 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 - по-прежнему имеет ту же ошибку. Любое руководство будет действительно оценено
Ответы
Ответ 1
Мне удалось решить проблему, подобную этой, в Visual Studio 2010 с помощью NuGet.
Откройте "Инструменты" > "Диспетчер пакетов библиотеки" > "Управление пакетами NuGet для решения...
В диалоговом окне найдите "EntityFramework.SqlServerCompact". Вы найдете пакет с описанием "Позволяет использовать SQL Server Compact 4.0 с Entity Framework". Установите этот пакет.
Элемент, похожий на следующий, будет вставлен в ваш web.config:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
Ответ 2
У меня была такая же проблема. Я проверил версию System.Data.SqlServerCe в C:\Windows\assembly. Это было 3.5.1.0. Поэтому я установил версию 4.0.0 из ниже ссылки (x86) и отлично работает.
http://www.microsoft.com/download/en/details.aspx?id=17876
Ответ 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 или любого другого поставщика базы данных, к которому вы подключаетесь.
Ответ 4
Эта ошибка в основном связана с несовместимостью архитектуры процессора с установленным Framework ei x86 vs x64
Решение:
Перейти к решению explorer > свойства проектa > вкладка Компилировать > Расширенные параметры компиляции
Там вам нужно изменить целевой процессор с X64 на X86
Сохраните новые настройки и перекомпилируйте решение.
Я попробовал, и все получилось очень хорошо.
Надеюсь, это поможет вам.
Малек
Ответ 5
В моем случае проблема была вызвана проблемой подключения к базе данных SQL. Я просто отключился, а затем повторно подключил источник данных SQL из проектного представления. Я снова работаю. Надеюсь, это сработает для всех.
Ответ 6
У меня была проблема similer с SqlClient в службе WCF.
Моим решением было поместить эти строки в клиентский app.config
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
Надеюсь, что это поможет кому-то.
Ответ 7
Это случилось со мной, потому что я создал новый проект, который пытался использовать System.Web.Providers
DefaultMembershipProvider
для членства. Моя БД и приложение были настроены для использования System.Web.Security.SqlMembershipProvider
. Мне пришлось обновить строку поставщика и подключения (поскольку у этого провайдера есть некоторые странные требования к строкам соединения), чтобы заставить его работать.
Ответ 8
У меня было то же самое, следуя учебному руководству MvcMusicStore в части 4 и заменив данное соединение String на это:
добавить name= "MusicStoreEntities" connectionString = "источник данных =.\SQLEXPRESS; Integrated Security = SSPI; database = MvcMusicStore; User ID = sa; password =" ProviderName = "System.Data.SqlClient" /" >
Это сработало для меня.