6

经过几个小时的搜索,我有点失望。任何人都可以确认(或不确认)现有的 Postgres SQL 数据库可以使用 EF 数据库优先方法(我的意思是,使用 VS EDMX degigner)吗?

一些要求:

  • 我想使用 ngsql 提供程序,因为它是免费的(但我不确定它是否在数据库优先的方法中工作)
  • 我不想使用 Devart Connect 提供程序,因为它不是免费的,而且它是用于个人项目的。我可以考虑快速版本,但我认为它不适用于设计模式。

干杯

4

2 回答 2

8

这个问题出现在大多数使用 Postgres 搜索 EF Database First 的谷歌搜索中,并且接受的答案直接指向 CODE first 而不是 DATABASE 首先的演练,所以我将添加一个指向这个答案的指针,这让我得到了解决它的大部分方法:

Visual Studio 2015 中的向导中缺少 PostgreSQL 数据提供程序

基本上有一个用于 postgres 的 Visual Studio 扩展(只需在扩展中搜索 Postgres 和更新),但我还必须修改我的 app.config 中的实体框架节点,因为它是在我安装扩展之前添加的,如下所示:

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />      
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
    </providers>
  </entityFramework>

这添加了 npgsql 作为数据提供者,在我这样做之后,数据提供者作为选项出现在 EF 数据库第一个向导中。

于 2018-02-27T10:51:41.800 回答
-3

是的,有可能。快速的谷歌搜索发现了一个演练,它没有表明有任何特殊的陷阱。

我会注意到我对代码优先的 ORM 框架持怀疑态度,因为我认为它们遗漏了数据库设计的关键方面,因此鼓励了没有对未来进行真正规划的数据库,所以我认为它在某种程度上是一种专门的工具,但是答案似乎是肯定的,它有效。

于 2013-06-05T14:14:06.193 回答