From 1d9bfc6312d4082365f450d4bb5a076b3ceaebdd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 18:30:43 +0000 Subject: [PATCH 1/2] Initial plan From 8231f2b5fcb1fc488c80e9eab6a5ab823dd3eed9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 18:39:13 +0000 Subject: [PATCH 2/2] Fix NRE for mistyped string default value on non-string column; add test Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com> --- src/EFCore/Storage/TypeMappingSourceBase.cs | 1 + .../SqlServerMigrationsSqlGeneratorTest.cs | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/EFCore/Storage/TypeMappingSourceBase.cs b/src/EFCore/Storage/TypeMappingSourceBase.cs index fe2f88ff815..c017b5592c9 100644 --- a/src/EFCore/Storage/TypeMappingSourceBase.cs +++ b/src/EFCore/Storage/TypeMappingSourceBase.cs @@ -149,6 +149,7 @@ protected virtual bool TryFindJsonCollectionMapping( out JsonValueReaderWriter? collectionReaderWriter) { if ((providerClrType == null || providerClrType == typeof(string)) + && modelClrType != typeof(string) && modelClrType.TryGetElementType(typeof(IEnumerable<>)) is { } elementType && elementType != modelClrType && !modelClrType.GetGenericTypeImplementations(typeof(IDictionary<,>)).Any()) diff --git a/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs b/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs index ebf25dd14e7..2567dda3368 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs @@ -79,6 +79,26 @@ public void CreateIndexOperation_unique_datacompression(DataCompressionType data """); } + [Fact] + public virtual void AddColumnOperation_mistyped_default_legacy() + { + Generate( + new AddColumnOperation + { + Table = "People", + Name = "Id", + ClrType = typeof(int), + ColumnType = "int", + DefaultValue = "", + IsNullable = false + }); + + AssertSql( + """ +ALTER TABLE [People] ADD [Id] int NOT NULL DEFAULT N''; +"""); + } + [Fact] public virtual void AddColumnOperation_identity_legacy() {