From 5c7948791c8f78a85126b04709757562aff56137 Mon Sep 17 00:00:00 2001 From: Andreas Gullberg Larsen Date: Mon, 10 Mar 2025 13:05:22 +0100 Subject: [PATCH 1/2] Upgrade nugets --- ...tityFrameworkCore.SqlServer.NodaTime.Tests.csproj | 12 ++++++------ ...are.EntityFrameworkCore.SqlServer.NodaTime.csproj | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests.csproj b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests.csproj index 1bb0719..df4159e 100644 --- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests.csproj +++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests.csproj @@ -6,15 +6,15 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj index 5618175..d4359e6 100644 --- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj +++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj @@ -19,8 +19,8 @@ - - + + From fd1357218519f43a72038760019727807427b52b Mon Sep 17 00:00:00 2001 From: Andreas Gullberg Larsen Date: Mon, 10 Mar 2025 13:00:03 +0100 Subject: [PATCH 2/2] Add repro tests for SqlServerStringTypeMapping collection type mapping System.Diagnostics.UnreachableException: A SqlServerStringTypeMapping collection type mapping could not be found ``` System.Diagnostics.UnreachableException A SqlServerStringTypeMapping collection type mapping could not be found at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.ApplyTypeMappingsOnOpenJsonExpression(SqlServerOpenJsonExpression openJsonExpression, IReadOnlyList`1 typeMappings) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.g__VisitList|117_0[T](List`1 list, Boolean inPlace, Boolean& changed, <>c__DisplayClass117_0&) at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor) at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression.VisitChildren(ExpressionVisitor visitor) at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor) at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerTypeMappingPostprocessor.VisitExtension(Expression expression) at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.Process(Expression expression) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerQueryTranslationPostprocessor.ProcessTypeMappings(Expression expression) at Microsoft.EntityFrameworkCore.Query.RelationalQueryTranslationPostprocessor.Process(Expression query) at Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerQueryTranslationPostprocessor.Process(Expression query) at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query) at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query) at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass11_0`1.b__0() at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteCore[TResult](Expression query, Boolean async, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetAsyncEnumerator(CancellationToken cancellationToken) at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator() at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken) ``` --- .../LocalDateQueryTests.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateQueryTests.cs b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateQueryTests.cs index 41fd359..d8faf38 100644 --- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateQueryTests.cs +++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateQueryTests.cs @@ -193,5 +193,29 @@ public async Task LocalDate_DateDiff_Day() Assert.Equal(6, raceResults.Count); } + + [Fact] + public async Task LocalDate_ContainedByConstantDates() + { + var dates = new[]{ new LocalDate(2019, 1, 1), new LocalDate(2019, 2, 1) }; + var raceResults = await this.Db.Race.Where(r => EF.Constant(dates).Contains(r.Date)).ToListAsync(); + Assert.Equal( + condense($"{RaceSelectStatement} WHERE [r].[Date] IN ('2019-01-01', '2019-02-01')"), + condense(this.Db.Sql)); + + Assert.Equal(2, raceResults.Count); + } + + [Fact] + public async Task LocalDate_ContainedByParameterDates() + { + var dates = new[]{ new LocalDate(2019, 1, 1), new LocalDate(2019, 2, 1) }; + var raceResults = await this.Db.Race.Where(r => EF.Parameter(dates).Contains(r.Date)).ToListAsync(); + Assert.Equal( + condense($"{RaceSelectStatement} WHERE -- TODO WRITE ME WHEN QUERY IS FIXED"), + condense(this.Db.Sql)); + + Assert.Equal(2, raceResults.Count); + } } }