EF6 + NPGSQL - App.Config 设置 - 具有固定名称"Npqsql"的提供程序未注册等



Visual Studio 2015/.NET Framework 4.5

实体框架 v6.1.3

实体框架6.Npgsql v3.1.0

Npgsql 3.2.2

我继承了一个包含EDMX EF6模型的项目,我无法在Visual Studio中打开(尽管代码运行正常((??(,因为我收到以下错误:-

"错误 175:具有固定名称'Npgsql' 的 ADO.NET 提供程序是 未在计算机或应用程序配置文件中注册,或者 无法加载。有关详细信息,请参阅内部异常。

相关的 app.config 设置如下所示:-

<entityFramework>
   <providers>
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
    </providers>
    <defaultConnectionFactory type="Npgsql.NpgsqlFactory, Npgsql" />
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="Npgsql"/>
      <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" support="FF"/>
    </DbProviderFactories>
  </system.data>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.2.0" newVersion="3.2.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

EDMX 的架构行如下所示:-

<Schema Namespace="MyAppMOdel.Store" Alias="Self" Provider="Npgsql" ProviderManifestToken="4.0" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">

我对 ProviderManifestToken="4.0" 设置有点谨慎,因为这个项目以前使用的是 SQL Server Compact 4。这里的正确值是什么?

有什么想法吗?

感谢!

看起来有人手动进行了一些更改:-(

经过很多失误(在数据连接和EDM向导 https://github.com/npgsql/npgsql/issues/1445 遇到问题(之后,我可以看到ProviderManifestToken应该是"9.6.2";随着这一更改使我的EDMX我现在能够在Visual Studio 2015中打开它。

EDMX 文件中的行现在看起来像

<Schema Namespace="MyAppModel.Store" Provider="Npgsql" ProviderManifestToken="9.6.2" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">

最新更新