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# npgsql 2.1.3和EF 6:无法确定存储版本;需要有效的存储连接或版本提示_C#_Entity Framework_Postgresql_Npgsql - Fatal编程技术网

C# npgsql 2.1.3和EF 6:无法确定存储版本;需要有效的存储连接或版本提示

C# npgsql 2.1.3和EF 6:无法确定存储版本;需要有效的存储连接或版本提示,c#,entity-framework,postgresql,npgsql,C#,Entity Framework,Postgresql,Npgsql,我正在为PostgreSQL的sql生成器添加对EF 6的支持: 我创建了一个测试项目来尝试它,但当我创建一个新连接时,返回new NpgsqlConnection;,它向我抛出了这个例外: An exception of type 'System.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code Additional information: Unable to de

我正在为PostgreSQL的sql生成器添加对EF 6的支持:

我创建了一个测试项目来尝试它,但当我创建一个新连接时,返回new NpgsqlConnection;,它向我抛出了这个例外:

An exception of type 'System.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code

Additional information: Unable to determine the provider name for provider factory of type 'Npgsql.NpgsqlFactory'. Make sure that the ADO.NET provider is installed or registered in the application config.
按照Npgsql官方网站中的说明,我使用以下app.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework"></provider>
    </providers>
    <defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, Npgsql" />
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="Npgsql" />
      <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" />
    </DbProviderFactories>
  </system.data>
</configuration>
我不明白为什么会触发这个异常。我已经尝试了很多配置,但任何人都可以使用。

解决方案资源管理器

在file.edmx上单击鼠标右键 以…开头。。 编辑器XML 将ProviderManifestToken=XXXX更改为2008 解决方案浏览器

在file.edmx上单击鼠标右键 以…开头。。 编辑器XML 将ProviderManifestToken=XXXX更改为2008
对于方法应用程序中Global.asax内的MVC应用程序,请在我放的最后一行开始:

Database.SetInitializernull


这就解决了同样的问题。

对于Global.asax中的MVC应用程序,方法应用程序中的asax\u从我放的最后一行开始:

Database.SetInitializernull

这解决了同样的问题。

安装将解决您的问题

干杯。

安装将解决您的问题



干杯。

如果您先使用代码并使用迁移生成数据库,请删除u迁移历史记录表

如果您先使用代码并使用迁移生成数据库,请删除u迁移历史记录表

是否尝试将DbProviderFactorys配置添加到machine.config文件中?例如,当我使用edmgen时,它会在machine.config文件中查找配置。你如何使用你的程序?你能寄一个样品吗?另一方面,您是否愿意将代码贡献给Npgsql?这样,很多Npgsql用户都可以从您的代码中受益。另外,如果无法提供代码,请让我了解更多关于您的项目的信息,以便我们可以在文档中添加对它的引用。我尝试使用machine.conf,但不起作用。这是一个SqlMigrationGenerator,用于使实体框架能够使用手动迁移。我已经调整了我的课程,现在它开始工作了。以前,我继承了SqlServerMigrationGenerator,但现在我继承了MigrationSqlGenerator,工作得更好,但还没有完成。我向nuget发布了EntityFramework5的版本,但要完成EF6的这个版本,我几乎没有什么问题。用我的代码贡献Npgsql将是非常好的,这样Npgsql就可以响应ef的所有特性。谢谢您是否尝试将DbProviderFactorys配置添加到machine.config文件?例如,当我使用edmgen时,它会在machine.config文件中查找配置。你如何使用你的程序?你能寄一个样品吗?另一方面,您是否愿意将代码贡献给Npgsql?这样,很多Npgsql用户都可以从您的代码中受益。另外,如果无法提供代码,请让我了解更多关于您的项目的信息,以便我们可以在文档中添加对它的引用。我尝试使用machine.conf,但不起作用。这是一个SqlMigrationGenerator,用于使实体框架能够使用手动迁移。我已经调整了我的课程,现在它开始工作了。以前,我继承了SqlServerMigrationGenerator,但现在我继承了MigrationSqlGenerator,工作得更好,但还没有完成。我向nuget发布了EntityFramework5的版本,但要完成EF6的这个版本,我几乎没有什么问题。用我的代码贡献Npgsql将是非常好的,这样Npgsql就可以响应ef的所有特性。谢谢你为我祈祷。我在2012年换了2008年,这解决了我的问题。谢谢。很高兴知道原因以及为什么它仍然没有被修复。我不确定这对我来说是否是Telerik的问题。从2012年到2008年,我所能想到的就是,这可能与SQL Server版本有关。我使用的是一个2008 R2数据库,所以可能有一个错误或一些问题,EF6没有选择正确的数据库版本。从2012年到2008年的变化对我来说很有效。@Vincenzo Costa,似乎这个解决方案只可能采用数据库优先的方法,而不是代码优先的方法。在代码优先的方法中是否有其他方法可以实现这一点。@Cizap。我不会错,但是.edmx文件也是用FirstWorked为我创建的方法代码创建的。我在2012年换了2008年,这解决了我的问题。谢谢。很高兴知道原因以及为什么它仍然没有被修复。我不确定这对我来说是否是Telerik的问题。从2012年到2008年,我所能想到的就是,这可能与SQL Server版本有关。我使用的是一个2008 R2数据库,所以可能有一个错误或一些问题,EF6没有选择正确的数据库版本。从2012年到2008年的变化对我来说很有效。@Vincenzo Costa,似乎这个解决方案只可能采用数据库优先的方法,而不是代码优先的方法。在代码优先的方法中是否有其他方法可以实现这一点。@Cizap。我没有错,但是.edmx文件也是用方法代码First创建的。这解决了我在EF 5中的问题,因为我们仍然在使用
EFV5用于某些项目。这解决了我在EF5方面的问题,因为我们仍在为某些项目使用EFV5。