NPGSQL与.netcore如何登录到模式,而不仅仅是数据库

本文关键字:模式 数据库 不仅仅是 登录 netcore 何登录 NPGSQL | 更新日期: 2023-09-27 18:06:38

这是我的NPGSQL连接字符串

{
    "ConnectionStrings": {     
        "DataAccessPostgreSqlProvider":  "User ID=damienbod;Password=1234;Host=localhost;Port=5432;Database=damienbod;Pooling=true;"
        }
    }
}

摘自这里:https://damienbod.com/2016/01/11/asp-net-5-with-postgresql-and-entity-framework-7/

但是我在Postgres数据库下使用schemas。如何连接到idsrv4模式?

NPGSQL与.netcore如何登录到模式,而不仅仅是数据库

您也可以在连接字符串中指定搜索路径:

{
"ConnectionStrings": {     
    "DataAccessPostgreSqlProvider":  "User ID=damienbod;Password=1234;Host=localhost;Port=5432;Database=damienbod;Pooling=true;SearchPath=your_search_path;"
    }
}

所有模式都位于同一个数据库下,因此当您连接到该数据库时,您可以访问所有模式。如果要访问idsrv4模式下的表,只需限定其名称:

SELECT * FROM idsrv4.mytable;

如果您不喜欢用模式限定表名的所有实例,您可以更改search_path变量:

SET search_path = 'idsrv4,public';

现在,对于这个连接的其余部分,您可以执行SELECT * FROM mytablesearch_path的含义是,当指定非限定表名时,它包含要搜索的模式列表。注意search_path在每次连接的基础上工作,所以每次连接到数据库时都必须设置它。