Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基础提供程序在ConnectionString PostgreSql EF6上失败_C#_Entity Framework_Postgresql - Fatal编程技术网

C# 基础提供程序在ConnectionString PostgreSql EF6上失败

C# 基础提供程序在ConnectionString PostgreSql EF6上失败,c#,entity-framework,postgresql,C#,Entity Framework,Postgresql,My web.config: <system.data> <DbProviderFactories> <remove invariant="Devart.Data.PostgreSql" /> <add name="Npgsql Data Provider" invariant="Devart.Data.PostgreSql" description="Data Provider for PostgreSQL" t

My 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>
查询时发生以下错误: 不支持关键字:“主机”

参考资料:

<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

有人遇到了这个问题?

,使用npgsql的主机的正确连接参数是Server not host。它模仿SQLServer的连接字符串格式,该格式也使用服务器

因此,您的连接字符串应该是:

<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" />
/// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^^^^^^

但该连接字符串是由模型中的工具首先创建的。已按报告进行更改,但现在返回错误:关键字不受支持:“服务器”