C# 的 Npgsql 如何访问 table 脚本、视图、外键和主键并将它们编写出来

Npgsql for c# how to access table scripts, views, foreign and primary keys and script them out

我正在使用 Npgsql 包在 C# 中编码。我已经像这样连接到 Postgresql

  string connString = String.Format("Server={0};Port={1};User Id= {2};Password={3};Database={4};", serverName, "5432", username, password,databaseName);
  NpgsqlConnection conn = new NpgsqlConnection(connString);
  conn.Open(); 

有什么方法可以访问表、视图、主键和外键并从 C# 为它们生成创建脚本?

我相当确定 Npgsql 没有任何生成 CREATE 脚本的内置方法,但您可以访问 second answer to this question.

等模式信息

您还可以通过查看各种 pgadmin/schema/pg*.cpp 源文件了解 pgAdmin III 如何生成 CREATE 脚本,例如 here is how pgAdmin III generates SQL for a table. You can also have a look at how psql describes tables here, and there is the monstrous pg_dump utility too.

您可以在您的应用程序中使用适当的标志调用 pg_dump 并相应地处理输出,但是如果您的应用程序的许可证与 pg_dump 所适用的任何许可证不兼容,这可能会引入分发问题在.

如果无法调用 pg_dump,您可以从 pgAdmin III 或 pg_dump 源代码创建一个库并在您的应用程序中使用它(如果许可允许)。您最不想做的就是推出自己的实现。