From ac9545f58b13b3d4009576766be6730bc2ba81da Mon Sep 17 00:00:00 2001 From: Van Tian Date: Thu, 7 Mar 2024 14:10:07 +0800 Subject: [PATCH] sync Connection and ConnectionString When both Connection and ConnectionString are not null, Connection's ConnectionString is different to ConnectionString, the ConnectionString will be used instead of the Connection's ConnectionString. It will cause a bug, for example, I need to create database through following code: ```csharp DbContext.Database.Migrate() ``` if DatabaseSource is Setted: ```csharp extension.WithDataSource(dataSource); ``` then we set AdminDatabase: ```csharp extension.WithAdminDatabase("postgres"); ``` it wont work. --- .../Infrastructure/Internal/NpgsqlOptionsExtension.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs b/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs index 1ed164bb4..bdce70697 100644 --- a/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs +++ b/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs @@ -145,7 +145,8 @@ public override RelationalOptionsExtension WithConnectionString(string? connecti /// public override RelationalOptionsExtension WithConnection(DbConnection? connection) { - var clone = (NpgsqlOptionsExtension)base.WithConnection(connection); + var clone = (NpgsqlOptionsExtension)base.WithConnection(connection) + .WithConnectionString(connection?.ConnectionString); clone.DataSource = null;