Не удалось найти запрошенный поставщик данных .Net Framework. Может не быть установлен - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть приложение, работающее на ASP.NET MVC 3 с Entity Framework Code First. В процессе разработки я использовал базу данных 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" />

Ошибка, которую я сейчас получаю при переходе на страницу, которая использует БД:

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

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

Что касается вашей второй проблемы, а отчасти и причины первой ...

что вы сделали неправильно: 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, имеющие собственную таблицу и данные, которые необходимо правильно инициализировать.Если это не совпадает, вы получите нечто подобное.

0 голосов
/ 01 апреля 2012

Сначала используйте обычную строку подключения с кодом.

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