经过几个小时的搜索,我有点失望。任何人都可以确认(或不能)使用 EF 数据库优先方法(我的意思是,使用 VS EDMX degigner)可以用于现有的 Postgres SQL 数据库吗?
一些要求:
- 我想使用 ngsql 提供程序,因为它是免费的(但我不确定它是否以数据库优先的方式工作)
- 我不想使用 Devart Connect 提供商,因为它不是免费的,而且是用于个人项目的。我可以考虑 express 版本,但我认为它不适用于设计模式。
干杯
最佳答案
这个问题出现在大多数使用 Postgres 的 EF Database First 的谷歌搜索中,接受的答案首先指向 CODE 的演练,而不是 DATABASE 首先,所以我将添加一个指向这个答案的指针,这让我大部分时间解决方法:
PostgreSQL data provider missing from wizard in Visual Studio 2015
本质上有一个用于 postgres 的 Visual Studio 扩展(只需搜索 Postgres 的扩展和更新)但我还必须修改我的 app.config 中的 Entity Framework 节点,因为它是在我安装扩展之前添加的,看起来像这个:
<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 数据库第一个向导中。
关于entity-framework - EF/Postgresql 数据库优先方法可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16394760/