From 55b5f7def1a700aa25df26b872cac066cc27843e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 22 Dec 2025 19:59:23 +0000 Subject: [PATCH 1/6] [release/10.0] Source code updates from dotnet/dotnet (#37412) [release/10.0] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 36 +++++++++---------- eng/Version.Details.xml | 74 +++++++++++++++++++-------------------- eng/Versions.props | 2 +- global.json | 4 +-- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/NuGet.config b/NuGet.config index 95552d4cb2d..3255276e2ff 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 47ccfcbfc73..1177ad8f8e0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,24 +6,24 @@ This file should be imported by eng/Versions.props - 10.0.0-beta.25612.103 - 10.0.0-beta.25612.103 - 10.0.0-beta.25612.103 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.103 - 10.0.2 - 10.0.2 - 10.0.2-servicing.25612.103 - 10.0.2 - 10.0.2 - 10.0.2 - 10.0.2 + 10.0.0-beta.25619.112 + 10.0.0-beta.25619.112 + 10.0.0-beta.25619.112 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3-servicing.25619.112 + 10.0.3 + 10.0.3 + 10.0.3-servicing.25619.112 + 10.0.3 + 10.0.3 + 10.0.3 + 10.0.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2f237420d0e..15efebca2cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,80 +1,80 @@ - + - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca - + https://github.com/dotnet/dotnet - a1b9d991e4596823841f4f9d840e72ac369e3a7e + a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca diff --git a/eng/Versions.props b/eng/Versions.props index 7425232448a..1662bb02161 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,7 +1,7 @@ - 10.0.2 + 10.0.3 servicing False diff --git a/global.json b/global.json index fcf942e5fb0..fdaffa92428 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25612.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25612.103" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25619.112", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25619.112" } } From d7a083080c565bf910a2afecb8c0b8915cbe818e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 29 Dec 2025 21:55:27 +0000 Subject: [PATCH 2/6] [release/10.0] Source code updates from dotnet/dotnet (#37421) [release/10.0] Source code updates from dotnet/dotnet --- NuGet.config | 2 +- eng/Version.Details.props | 10 ++++---- eng/Version.Details.xml | 48 +++++++++++++++++++-------------------- global.json | 4 ++-- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index 3255276e2ff..28f50904940 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 1177ad8f8e0..841f1c5c581 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,9 +6,9 @@ This file should be imported by eng/Versions.props - 10.0.0-beta.25619.112 - 10.0.0-beta.25619.112 - 10.0.0-beta.25619.112 + 10.0.0-beta.25628.102 + 10.0.0-beta.25628.102 + 10.0.0-beta.25628.102 10.0.3 10.0.3 10.0.3 @@ -16,10 +16,10 @@ This file should be imported by eng/Versions.props 10.0.3 10.0.3 10.0.3 - 10.0.3-servicing.25619.112 + 10.0.3-servicing.25628.102 10.0.3 10.0.3 - 10.0.3-servicing.25619.112 + 10.0.3-servicing.25628.102 10.0.3 10.0.3 10.0.3 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 15efebca2cf..dabae76bd45 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,80 +1,80 @@ - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 - + https://github.com/dotnet/dotnet - a9cbaa5a5396a9fdc77dfa0e9500fc8a87ce89ca + 34ad7c3e9a107797d5005c2f12f43107a25a01a5 diff --git a/global.json b/global.json index fdaffa92428..db416f7c7d6 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25619.112", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25619.112" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25628.102", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25628.102" } } From ac4d0ea0dc3dc977dd1eb1ada639154cf4ff06fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Tue, 30 Dec 2025 19:37:49 +0300 Subject: [PATCH 3/6] Ensure decimal collation uses invariant culture Updated decimal parsing in EF_DECIMAL collation to use CultureInfo.InvariantCulture for consistent ordering across cultures. Added a test to verify correct ordering of decimal values under Turkish culture. --- .../Internal/SqliteRelationalConnection.cs | 5 +- .../BuiltInDataTypesSqliteTest.cs | 72 +++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs b/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs index f63c2fac40e..91d51a39128 100644 --- a/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs +++ b/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Globalization; using System.Text.RegularExpressions; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore.Sqlite.Infrastructure.Internal; @@ -186,7 +187,9 @@ private void InitializeDbConnection(DbConnection connection) sqliteConnection.CreateCollation( "EF_DECIMAL", - (x, y) => decimal.Compare(decimal.Parse(x), decimal.Parse(y))); + (x, y) => decimal.Compare( + decimal.Parse(x, NumberStyles.Any, CultureInfo.InvariantCulture), + decimal.Parse(y, NumberStyles.Any, CultureInfo.InvariantCulture))); } else { diff --git a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs index eb7dbb084a3..18ea568ed81 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs @@ -1,8 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Globalization; using System.Text.RegularExpressions; using Microsoft.EntityFrameworkCore.Sqlite.Internal; +using Microsoft.EntityFrameworkCore.TestUtilities.Xunit; // ReSharper disable InconsistentNaming // ReSharper disable ParameterOnlyUsedForPreconditionCheck.Local @@ -1563,6 +1565,76 @@ LIMIT 1 Assert.Equal(expectedResults, results); } + [ConditionalFact, UseCulture("tr-TR")] + public virtual void Can_query_OrderBy_decimal_with_Turkish_culture() + { + using var context = CreateContext(); + var min = new BuiltInDataTypes + { + Id = 225, + PartitionId = 209, + TestDecimal = 1.5m, + TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero), + TestTimeSpan = TimeSpan.FromDays(1), + TestUnsignedInt64 = 0 + }; + context.Add(min); + + var middle = new BuiltInDataTypes + { + Id = 226, + PartitionId = 209, + TestDecimal = 2.5m, + TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero), + TestTimeSpan = TimeSpan.FromDays(2), + TestUnsignedInt64 = 1 + }; + context.Add(middle); + + var max = new BuiltInDataTypes + { + Id = 227, + PartitionId = 209, + TestDecimal = 1.05m, + TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 11, 0, 0, TimeSpan.FromHours(-2)), + TestTimeSpan = TimeSpan.FromDays(10), + TestUnsignedInt64 = long.MaxValue + 1ul + }; + context.Add(max); + + context.SaveChanges(); + + Fixture.TestSqlLoggerFactory.Clear(); + + var query = context.Set() + .Where(e => e.PartitionId == 209); + + var results = query + .OrderBy(e => e.TestDecimal) + .Select(e => new { e.Id, e.TestDecimal }) + .ToList(); + + AssertSql( + """ +SELECT "b"."Id", "b"."TestDecimal" +FROM "BuiltInDataTypes" AS "b" +WHERE "b"."PartitionId" = 209 +ORDER BY "b"."TestDecimal" COLLATE EF_DECIMAL +"""); + + var expectedResults = query.AsEnumerable() + .OrderBy(e => e.TestDecimal) + .Select(e => new { e.Id, e.TestDecimal }) + .ToList(); + + Assert.Equal(expectedResults.Count, results.Count); + for (var i = 0; i < expectedResults.Count; i++) + { + Assert.Equal(expectedResults[i].Id, results[i].Id); + Assert.Equal(expectedResults[i].TestDecimal, results[i].TestDecimal); + } + } + [ConditionalFact] public virtual void Can_query_using_char_ToLower() { From 4a2a6918379b7fa358922ca906c4b823e040dbb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Tue, 30 Dec 2025 19:56:40 +0300 Subject: [PATCH 4/6] Remove unused using directive in test file Eliminated the unnecessary 'using System.Globalization;' directive from BuiltInDataTypesSqliteTest.cs to clean up the code. --- test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs index 18ea568ed81..6ab69bdd9fb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Globalization; using System.Text.RegularExpressions; using Microsoft.EntityFrameworkCore.Sqlite.Internal; using Microsoft.EntityFrameworkCore.TestUtilities.Xunit; From d9d9d96c33d0f15f4251841c6d59aa7f0fc20984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Tue, 30 Dec 2025 20:46:40 +0300 Subject: [PATCH 5/6] Update decimal test values in Turkish culture test Adjusted the TestDecimal values for test entities in Can_query_OrderBy_decimal_with_Turkish_culture to ensure correct ordering and test coverage. --- .../BuiltInDataTypesSqliteTest.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs index 6ab69bdd9fb..7bb03e87857 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs @@ -1572,7 +1572,7 @@ public virtual void Can_query_OrderBy_decimal_with_Turkish_culture() { Id = 225, PartitionId = 209, - TestDecimal = 1.5m, + TestDecimal = 1.05m, TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero), TestTimeSpan = TimeSpan.FromDays(1), TestUnsignedInt64 = 0 @@ -1583,7 +1583,7 @@ public virtual void Can_query_OrderBy_decimal_with_Turkish_culture() { Id = 226, PartitionId = 209, - TestDecimal = 2.5m, + TestDecimal = 1.5m, TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero), TestTimeSpan = TimeSpan.FromDays(2), TestUnsignedInt64 = 1 @@ -1594,7 +1594,7 @@ public virtual void Can_query_OrderBy_decimal_with_Turkish_culture() { Id = 227, PartitionId = 209, - TestDecimal = 1.05m, + TestDecimal = 2.5m, TestDateTimeOffset = new DateTimeOffset(2018, 1, 1, 11, 0, 0, TimeSpan.FromHours(-2)), TestTimeSpan = TimeSpan.FromDays(10), TestUnsignedInt64 = long.MaxValue + 1ul From c171fd445d30f94a69b83be3e12532ba2c35e58d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Fri, 2 Jan 2026 09:44:25 +0300 Subject: [PATCH 6/6] Update src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Storage/Internal/SqliteRelationalConnection.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs b/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs index 91d51a39128..942c1eda177 100644 --- a/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs +++ b/src/EFCore.Sqlite.Core/Storage/Internal/SqliteRelationalConnection.cs @@ -188,8 +188,8 @@ private void InitializeDbConnection(DbConnection connection) sqliteConnection.CreateCollation( "EF_DECIMAL", (x, y) => decimal.Compare( - decimal.Parse(x, NumberStyles.Any, CultureInfo.InvariantCulture), - decimal.Parse(y, NumberStyles.Any, CultureInfo.InvariantCulture))); + decimal.Parse(x, NumberStyles.Number, CultureInfo.InvariantCulture), + decimal.Parse(y, NumberStyles.Number, CultureInfo.InvariantCulture))); } else {