Основной провайдер завершился ошибкой на ConnectionString PostgreSql EF6

1

Мой web.config:

  <system.data>
    <DbProviderFactories>
      <remove invariant="Devart.Data.PostgreSql" /> 
      <add name="Npgsql Data Provider" invariant="Devart.Data.PostgreSql" description="Data  Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" />
    </DbProviderFactories>
  </system.data>

    <connectionStrings>
    <add name="OcrCliaCargoEntities" connectionString="metadata=res://*/OcrClia.Cargo.OcrCliaCargoDB.csdl|res://*/OcrClia.Cargo.OcrCliaCargoDB.ssdl|res://*/OcrClia.Cargo.OcrCliaCargoDB.msl;provider=Devart.Data.PostgreSql;provider connection string=user id=postgres;host=10.40.51.202;database=cargo;initial schema=tobackup" providerName="System.Data.EntityClient" />
  </connectionStrings>


    <entityFramework>
    <providers>      
      <provider invariantName="Devart.Data.PostgreSql" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework" />
    </providers>    
  </entityFramework>

Во время запроса возникает следующая ошибка: ключевое слово не поддерживается: "host"

Рекомендации:

<package id="EntityFramework" version="6.1.0" targetFramework="net40" />
<package id="Npgsql" version="2.1.3" targetFramework="net40" />
<package id="Npgsql.EntityFramework" version="2.1.3" targetFramework="net40" />

На моей рабочей машине была установлена пробная версия: dcpostgresql.exe

Кто-то пережил эту проблему?

Теги:
entity-framework

1 ответ

0

Согласно connectionstrings.com, правильным параметром соединения для хоста с использованием npgsql является Server not Host. Это имитирует формат строки подключения SQL Server, который также использует Server.

Таким образом, ваша строка подключения должна быть:

<add name="OcrCliaCargoEntities" connectionString="metadata=res://*/OcrClia.Cargo.OcrCliaCargoDB.csdl|res://*/OcrClia.Cargo.OcrCliaCargoDB.ssdl|res://*/OcrClia.Cargo.OcrCliaCargoDB.msl;provider=Devart.Data.PostgreSql;provider connection string=user id=postgres;Server=10.40.51.202;database=cargo;initial schema=tobackup" providerName="System.Data.EntityClient" />
/// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^^^^^^
  • 0
    Но эта та же строка подключения была создана инструментом в модели первой.
  • 0
    Изменено, как сообщается, но теперь возвращает ошибку: ключевое слово не поддерживается: 'сервер'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню