Создание соединения PostgreSQL с Entity Framework и Npgsql.Ошибка при попытке чтения с SQL Server - PullRequest
0 голосов
/ 10 июня 2018

При попытке создать указанное выше соединение через конфигурационный файл Entity Framework и при запуске выдается следующая ошибка:

13: 02: 57.058 0 System.Data.SqlClient.SqlException (0x80131904): сеть-связанная или специфичная для экземпляра ошибка при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.
(поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть подключение к SQL Server)

System.ComponentModel.Win32Exception (0x80004005): Сетевой путь не найден

Кажется, не идентифицирует, что это соединение с PostgreSQL, которое я пытаюсь установить.

<configuration>
    <configSections>
        <section name="entityFramework" 
                 type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                 requirePermission="false" />
    </configSections>
    <connectionStrings>
        <add name="Test_Track" 
             connectionString="server=localhost;user id=rouser;password=pass;Database=track;" 
             providerName="Npgsql" />
    </connectionStrings>
    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
        <providers> 
            <provider invariantName="Npgsql" 
                      type="Npgsql.NpgsqlServices, Npgsql.EntityFramework" />
        </providers>
    </entityFramework>
    <system.data>
        <DbProviderFactories>
            <add name="Npgsql Data Provider" invariant="Npgsql" 
                 description=".Net Data Provider for PostgreSQL" 
                 type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
        </DbProviderFactories>
    </system.data>
  • EF: Версия 6.0
  • VS .NET Framework 4.5
  • Npgsql.2.2.7
  • Npgsql.EntityFramework.2.2.7

Любойпомощь вообще будет принята с благодарностью.

Ура.

1 Ответ

0 голосов
/ 10 июня 2018

Эта ошибка исходит от поставщика MS SQL Server, а не Npgsql.

Поставщик MSSQL пытается подключиться через именованные каналы, которые предназначены только для Windows, и не поддерживаются Npgsql.

Я бы посоветовал просмотреть ваш файл конфигурации и использовать Npgsql.NpgsqlConnectionFactory вместо SqlConnectionFactory, как показывает ссылка, предоставленная magicandre1981.

...