首先在远程安全数据库上使用EF和数据库

时间:2013-09-17 16:03:38

标签: c# asp.net database entity-framework postgresql

我想知道在以下情况下是否可以使用Entity Framework扫描数据库并构建EDMX模型:

(它实际上是一个PostgreSQL数据库,我可能会使用dotConnect,但我认为原理是一样的,我在devart论坛上问了一个类似的问题。)

数据库受SSL 保护,管理员已为单个IP地址(托管我的ASP.NET网站的计算机的地址)提供了访问权限。

理论上可以设置Visual Studio(在我的开发机器上)和主机,这样我就能用我的开发机器访问这个数据库吗?我需要在主机上设置什么才能将其用作代理(我有完全的管理员访问权限)?

没有尝试任何东西,似乎唯一的选择是在主机上安装Visual Studio,在那里构建EDMX模型,并将其导入我的开发环境并在本地创建实际数据库,但我只想做这是最后的手段。

2 个答案:

答案 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连接。