Использование модели данных объекта sql server 2008 ado.net и строки подключения postgresql - PullRequest
0 голосов
/ 09 января 2012

Я использую Visual Studio 2008, SQL Server 2008, asp.net mvc 2.

Теперь я должен изменить свою базу данных на postgresql.Я перепробовал много способов.Но я сделал что-то другое.

  1. Я создал модель данных на основе базы данных SQL Server 2008.
  2. У меня такая же структурированная база данных в postgresql.
  3. Так что ятолько что изменил строку подключения модели данных объекта, и я получил следующую ошибку

Поставщик 'System.Data.SqlClient' из указанного артефакта (ов) SSDL не соответствует ожидаемомуПоставщик Npgsql из строки подключения.

Как мне решить эту ошибку.

Пожалуйста, дайте мне знать, если это правильный способ реализации.

1 Ответ

0 голосов
/ 09 января 2012

Ну, физический уровень вашей модели (файл "SSDL" в ваших метаданных), конечно, будет содержать физические аспекты вашей модели базы данных - включая поставщика базы данных, на котором основана эта модель. Вы не можете просто изменить строку подключения к базе данных и покончить с этим .....

Я вижу два варианта:

  1. мое предпочтительное решение: просто заново создайте модель EF на основе вашей базы данных Postgres - это самый чистый путь. Если вы все делаете правильно, это все равно содержится в одной сборке в вашем проекте, так что вы можете более или менее заменить новую сборку на Postgres вместо SQL Server

  2. хак на мой взгляд: у вас могут быть файлы метаданных (* .ssdl, * .msl, * .csdl) для вашей модели, записанные на диск, а затем вручную отредактируйте файл SSDL для переключения на провайдер Postgres. Я понятия не имею, будет ли это вообще работать и какие у него могут быть побочные эффекты! Делайте на свой страх и риск и делайте это на резервной копии Ваш проект первым!

...