diff --git a/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs b/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs index 6be7bd81a..282b26902 100644 --- a/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs +++ b/src/EFCore.PG/Infrastructure/Internal/NpgsqlOptionsExtension.cs @@ -126,6 +126,7 @@ public NpgsqlOptionsExtension(NpgsqlOptionsExtension copyFrom) DataSourceBuilderAction = copyFrom.DataSourceBuilderAction; AdminDatabase = copyFrom.AdminDatabase; _postgresVersion = copyFrom._postgresVersion; + _parameterizedCollectionMode = copyFrom._parameterizedCollectionMode; UseRedshift = copyFrom.UseRedshift; _userRangeDefinitions = [..copyFrom._userRangeDefinitions]; _enumDefinitions = [..copyFrom._enumDefinitions]; diff --git a/test/EFCore.PG.Tests/NpgsqlDbContextOptionsExtensionsTest.cs b/test/EFCore.PG.Tests/NpgsqlDbContextOptionsExtensionsTest.cs index 93c749fcb..27d4446bd 100644 --- a/test/EFCore.PG.Tests/NpgsqlDbContextOptionsExtensionsTest.cs +++ b/test/EFCore.PG.Tests/NpgsqlDbContextOptionsExtensionsTest.cs @@ -26,6 +26,21 @@ public void Can_add_extension_with_command_timeout() Assert.Equal(30, extension.CommandTimeout); } + [ConditionalFact] + public void ParameterizedCollectionMode_is_preserved_after_clone() + { + var optionsBuilder = new DbContextOptionsBuilder(); + optionsBuilder.UseNpgsql("Database=Crunchie", b => + { + b.UseParameterizedCollectionMode(ParameterTranslationMode.MultipleParameters); + b.UseRelationalNulls(); + }); + + var extension = optionsBuilder.Options.Extensions.OfType().Single(); + + Assert.Equal(ParameterTranslationMode.MultipleParameters, extension.ParameterizedCollectionMode); + } + [ConditionalFact] public void Can_add_extension_with_connection_string() {