Npgsql连接字符串,动态数据库查询

本文关键字:数据库 查询 动态 连接 字符串 Npgsql | 更新日期: 2023-09-27 18:14:54

我有以下连接字符串:

NpgsqlConnection conn = new NpgsqlConnection($"Server={_server};Port={_port};User ID={_userid};Password={_password};Database={database}");

其中database是从国家代码(GB, US, DE等)的集合中选择的,相应的数据库是所查询的。

国家代码是从一系列方法中选择的,这些方法确定它们的latitudelongitude (UTM)在地图上的位置(即51.503471, -0.119586将输出:GB,因为它在大不列颠的边界框内)。lat/lon值是由用户传入的,因此它们可能在每个查询中都不同,并且可能在不同的国家/地区(因此是不同的数据库)。

其余的连接数据保持不变,服务器/用户id等不会改变,但是每次用户提交lat/lon时被查询的数据库可能会改变。

是否有一种方法可以在Postgres/Npgsql中没有指定的database的情况下保持连接打开,或者我必须在每次提交查询时重新打开(并在查询结束时关闭)连接?

Npgsql连接字符串,动态数据库查询

不,PostgreSQL的连接总是指向一个特定的数据库,你不能切换一个数据库来保留相同的连接。

是否有特殊的原因将数据分离到不同的数据库中?同一数据库中的不同模式可以服务于相同的目的,而无需强制重新连接等。如果必须使用不同的数据库,连接池可以减轻不断关闭/打开连接对性能的影响。