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

Npgsql connection string, dynamic database querying

我有以下连接字符串:

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 值由用户传入,因此每个查询可能会有所不同,并且可能在不同的国家/地区(因此数据库不同)。

其余连接数据保持不变,server/userid等不会改变,但每次用户提交lat/lon.[=19=时查询的数据库可能会改变]

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

不,PostgreSQL 连接始终是到特定数据库的连接 - 您不能切换保留相同连接的数据库。

是否有特殊原因将数据分离到不同的数据库中?同一数据库中的不同模式可能具有相同的目的,而不会强制您重新连接等。如果您必须使用不同的数据库,连接池可能会减轻持续 closing/opening 连接对性能的影响。