diff --git a/src/EFCore.PG/Storage/ValueConversion/NpgsqlArrayConverter.cs b/src/EFCore.PG/Storage/ValueConversion/NpgsqlArrayConverter.cs index 982d58eaa..e1496a953 100644 --- a/src/EFCore.PG/Storage/ValueConversion/NpgsqlArrayConverter.cs +++ b/src/EFCore.PG/Storage/ValueConversion/NpgsqlArrayConverter.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Collections.Frozen; using static System.Linq.Expressions.Expression; namespace Npgsql.EntityFrameworkCore.PostgreSQL.Storage.ValueConversion; @@ -107,7 +108,15 @@ private static Expression> ArrayConversionExpression).MakeGenericType(outputElementType); + var mutableOutputType = outputIsImmutable + ? typeof(HashSet<>).MakeGenericType(outputElementType) + : typeof(TConcreteOutput); + + var output = Parameter(mutableOutputType, "result"); + var lengthVariable = Variable(typeof(int), "length"); var expressions = new List(); @@ -185,11 +194,11 @@ private static Expression> ArrayConversionExpression> ArrayConversionExpression).MakeGenericType(outputElementType))) + // return output; + : output); return Lambda>( // First, check if the given array value is null and return null immediately if so