我在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 Designer向导自动生成.edmx文件。我尝试添加一个ADO.net数据对象,从“数据库”中选择“EF Designer”,或者选择“数据库中的代码优先”。当我到达下一个屏幕时,我不得不选择一个数据源。我尝试了“MS SQL Server数据库文件”和“其他”。对于数据提供者,除了“.Net Data Provider for SQL”之外别无选择。
在下一个屏幕中,我尝试使用SQL Server身份验证创建一个带有用户名和密码的连接,但是我无法像在服务器资源管理器窗口中那样连接甚至显示Postgres服务器。对于服务器名称,我使用了与用于服务器资源管理器窗口的相同的服务器名称,即。 localhost.mydatabasename.myschema。对于SQL用户,我使用了Postgres数据库的所有者,即我创建的角色,即。 mydatabasename_role。
当出现故障时,我尝试进入MS SQL Management Studio 2014以查看是否可以使用Server Explorer窗口中使用的相同信息在那里显示Postgres服务器,但我无法让SSMS在那里显示Postgres服务器无论是。有没有办法自动生成数据模型和.edmx文件,就像我一直在尝试,只使用VS 13和SSMS 14?或者我是否需要为Devart开发的Postgres购买dotconnect的专有/许可版本?提前谢谢。
答案 0 :(得分:1)
目前正在开发一个支持EF Designer Wizard的Visual Studio插件。 您可以在此处找到它:https://github.com/npgsql/Npgsql/pull/213
答案 1 :(得分:0)
经过大约一周的研究和敲打我的脑袋后,我终于让我的Npgsql MVC实体框架应用程序正常工作......并使用向导工作。步骤如下......
1)关闭Visual Studio,然后从https://marketplace.visualstudio.com/items?itemName=RojanskyS.NpgsqlPostgreSQLIntegration下载并安装Npgsql PostgreSQL集成
2)重新启动计算机。 (是的,它需要,我保证)
3)打开visual studio并安装以下NuGet包,按列出的顺序和列出的VERSION ...
- > EntityFramework版本6.0.0,然后清理并重建
- > Npgsql 3.1.0,然后清理并重建
- > EntityFramework6.Npgsql 3.1.1,然后清理并重建
注意:如果列出的顺序和版本不能安装其他Nuget软件包,则可能需要卸载它们。如果是这样,请记下并稍后再添加。是的,你需要在上面的每一个之间进行清理/重建。
4)关闭所有应用程序并重新启动计算机。 (是的,它需要,我保证)
5)重新启动计算机后,再次打开Visual Studio并转到解决方案。注意:我建议您为数据库连接添加一个新项目,但这更像是一个偏好。
6)再次尝试使用实体框架向导。您应该看到Npgsql选项,它不应该只是崩溃。