2013-06-20 3 views
4

Во-первых, я нашел много вопросов и ответов, связанных или воспринимаемых идентично моей проблеме, однако ничто, кажется, не работает для меня.Поставщик данных Entity Framework не найден, entityclient

У меня есть новый шаблонный веб-сайт MVC4, новая база данных в новой установке SQL Server 2008 r2. Я запустил aspnet_regsql в базе данных и создал все таблицы Я создал модель .edmx, которая сгенерировала строку соединения в моем web.config.

<connectionStrings> 
    <add name="TestEntities" connectionString="metadata=res://*/Models.Test.csdl|res://*/Models.Test.ssdl|res://*/Models.Test.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=WEBSRV\SQLEXPRESS;initial catalog=Test;persist security info=True;user id=Test;password=Test#1337;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

Создание сайта возвращает мне ошибку Unable to find the requested .Net Framework Data Provider. It may not be installed.

Там не закрывающиеся <DbProviderFactories/> в моем machine.config Та же проблема происходит кастрированный баран я запускаю сайт локально в веб-хостинга Visual Studio или на IIS веб-сервера. Я не установил пакеты NuGet

Зачем нужна эта ошибка?

ответ

8

Правильно, я понял вопрос.

Вы не можете использовать эту строку соединения для чего-либо еще, кроме соединения edmx. То, как у меня есть это в моем web.config, делает сайт таким же connectionstring для элемента принадлежности тоже, который несовместим с поставщиком System.Data.EntityClient и нуждается в System.Data.Sqlclient в моем случае. Добавляя вторую строку соединения, за исключением элементов Entity Framework в ней и имеющих ссылку на атрибуты поставщика членства в web.config, удаляют все ошибки и позволяют странице отображать и запрашивать данные с SQL-сервера.

Nightmare over, может вернуться на работу на моем сайте. o/

+1

you'are право, дополнительное соединение требуется для простого членства –

+2

Можно ли размещать некоторые (пример) код? – Odrai

+1

Вы можете показать обновленные connectionStrings? – deathrace

3

Это неправильный тип строки подключения. То есть для первого типа модели (EDMX). Вам нужна строка первого кода кода. Попробуйте использовать стандартную строку соединения, такие как:

<connectionStrings> 
    <add name="MyDbContext" providerName="System.Data.SqlClient" connectionString="Data Source=(local);Initial Catalog=your_database;Integrated Security=True;Application Name=your_app_name" /> 
</connectionStrings> 
+1

Спасибо вам большое! На самом деле этот ответ был * огромной * помощью, когда я пытался выяснить, почему мой пользовательский MemberhipProvider не работал (в контексте MVC 4 'WebSecurity'/authentication). – alex