0

我有一个用 Postgres 9.3 开发的本地数据库。我计算机上的 Postgres 服务器名称只是“localhost”。我想使用 Visual Studio 13 中内置的 Entity Framework 6 Designer 自动生成与数据库表和列相对应的 EF 类和属性的数据模型。

如各种网络文章中所述,并使用 Nuget 包管理器,我将这些扩展或包添加到 VS 13:EF 6、Npgsql、EF 6 的 Npgsql 数据提供程序和 Postgresql 的 Dotconnect express。之后,在 VS 13 Server Explorer 窗口中,我能够连接并查看我的 Postgres 表和列。

但是,我似乎无法让 EF 设计器向导自动生成 .edmx 文件。我尝试添加一个 ADO.net 数据对象,选择“数据库中的 EF 设计器”或者“数据库中的代码优先”。当我进入下一个屏幕时,我必须选择一个数据源。我尝试了“MS SQL Server 数据库文件”和“其他”。对于数据提供者,除了“.Net Data Provider for SQL”之外别无选择。

在下一个屏幕中,我尝试使用 SQL 服务器身份验证,使用用户名和密码创建连接,但我永远无法让 VS 13 连接,甚至无法像在服务器资源管理器窗口中那样显示 Postgres 服务器。对于服务器名称,我使用了与服务器资源管理器窗口相同的名称,即。localhost.mydatabasename.myschema。对于 SQL 用户,我使用了 Postgres 数据库的所有者,即我创建的角色,即。我的数据库名称_角色。

当那失败时,我尝试进入 MS SQL Management Studio 2014 以查看是否可以使用服务器资源管理器窗口中使用的相同信息在那里显示 Postgres 服务器,但我也无法让 SSMS 在那里显示 Postgres 服务器。有没有办法像我一直在尝试的那样,仅使用 VS 13 和 SSMS 14 自动生成数据模型和 .edmx 文件?或者我是否需要购买由 Devart 开发的用于 Postgres 的 dotconnect 的专有/许可版本?先感谢您。

4

2 回答 2

1

目前正在开发一个支持 EF 设计器向导的 Visual Studio 插件。你可以在这里找到它:https ://github.com/npgsql/Npgsql/pull/213

于 2014-06-19T22:03:19.173 回答
0

经过大约一周的研究并将我的头撞到我的桌子上,我终于让我的 Npgsql MVC 实体框架应用程序工作......并与向导一起工作。步骤如下......

1) 关闭 Visual Studio,然后从以下网址下载并安装 Npgsql PostgreSQL 集成:https ://marketplace.visualstudio.com/items?itemName=RojanskyS.NpgsqlPostgreSQLIntegration

2) 重新启动计算机。(是的,它是必需的,我保证)

3)打开visual studio并安装以下NuGet包,按列出的顺序和列出的版本......

--> EntityFramework 6.0.0 版本,然后清理并重建

--> Npgsql 3.1.0,然后清理并重建

--> EntityFramework6.Npgsql 3.1.1,然后清理并重建

注意:如果其他 Nuget 包未按列出的顺序和版本安装,您可能需要卸载这些包。如果是这样,请记下并稍后添加。是的,你会想要在上面的每一个之间清理/重建。

4) 关闭所有应用程序并重新启动计算机。(是的,它是必需的,我保证)

5) 计算机重新启动后,再次打开 Visual Studio 并转到您的解决方案。注意:我建议您为数据库连接添加一个新项目,但这更像是一种偏好。

6) 再次尝试使用实体框架向导。您应该看到 Npgsql 选择,它不应该只是在您身上崩溃。

于 2017-10-19T19:13:58.040 回答