我想知道在以下情况下是否可以使用Entity Framework扫描数据库并构建EDMX模型:
(它实际上是一个PostgreSQL数据库,我可能会使用dotConnect,但我认为原理是一样的,我在devart论坛上问了一个类似的问题。)
数据库受SSL 和保护,管理员已为单个IP地址(托管我的ASP.NET网站的计算机的地址)提供了访问权限。
理论上可以设置Visual Studio(在我的开发机器上)和主机,这样我就能用我的开发机器访问这个数据库吗?我需要在主机上设置什么才能将其用作代理(我有完全的管理员访问权限)?
没有尝试任何东西,似乎唯一的选择是在主机上安装Visual Studio,在那里构建EDMX模型,并将其导入我的开发环境并在本地创建实际数据库,但我只想做这是最后的手段。
答案 0 :(得分:1)
只需将postgres工具和库复制到服务器计算机(或在其上安装完整的postgres DB),然后使用pg_dump
将数据库架构和/或数据转储到文件中。
阅读this page
了解有关pg_dump
。
如果您希望仅使用架构,请使用--schema_only
的{{1}}密钥。
答案 1 :(得分:1)
dotConnect for PostgreSQL允许您通过代理连接。您可以在计算机上安装代理服务器,该计算机承载您的ASP.NET网站并可以访问PostgreSQL数据库。您可以通过此代理服务器连接到数据库。为此,您需要应用以下连接设置:
PgSqlConnection conn = new PgSqlConnection("host=<DATABASE HOST>;port=5434;uid=<USER ID>;pwd=<PASSWORD>");
conn.ProxyOptions.Host = "PROXY HOST";
conn.ProxyOptions.Port = 3128;
conn.ProxyOptions.User = "PROXY USER ID";
conn.ProxyOptions.Password = "PROXY PASSWORD";
dotConnect for PostgreSQL也可以通过SSL连接。为此,您需要配置服务器以使其支持SSL连接并应用以下连接设置:
conn.SslOptions.CACert = "D:\\Certificates Pg\\client\\root.crt";
conn.SslOptions.Cert = "D:\\Certificates Pg\\client\\client.crt";
conn.SslOptions.Key = "D:\\Certificates Pg\\client\\client.key";
conn.SslOptions.SslMode = SslMode.Require;
dotConnect for PostgreSQL允许通过代理创建SSL连接。