From b4cc69c77bbb8a6a8d4d209701f3800b055438b3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Nov 2025 12:57:34 +0000 Subject: [PATCH 1/2] chore: update dotnet monorepo to v10 --- ...ud.EntityFrameworkCore.Spanner.IntegrationTests.csproj | 4 ++-- ...oogle.Cloud.EntityFrameworkCore.Spanner.Samples.csproj | 2 +- .../Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj | 4 ++-- .../Google.Cloud.EntityFrameworkCore.Spanner.csproj | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj index 356ab526..02794cc2 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj @@ -19,8 +19,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj index 7ec89144..65ee53c5 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj @@ -24,7 +24,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj index b88921fe..d4a6345c 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj @@ -18,11 +18,11 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj b/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj index 211bec38..25fc4f27 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj @@ -21,11 +21,11 @@ - - - + + + - + From 21fb121245d7d19c83357ef9d5add9321066938b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Tue, 18 Nov 2025 14:30:32 +0100 Subject: [PATCH 2/2] chore: update to .NET 10 and EF10 --- .github/workflows/build-and-test.yml | 2 +- .../workflows/integration-tests-on-emulator.yml | 2 +- .../workflows/integration-tests-on-production.yml | 2 +- .github/workflows/samples.yml | 2 +- ...d.EntityFrameworkCore.Spanner.Benchmarks.csproj | 2 +- ...tyFrameworkCore.Spanner.IntegrationTests.csproj | 2 +- .../QueryTests.cs | 2 +- ...loud.EntityFrameworkCore.Spanner.Samples.csproj | 2 +- ....Cloud.EntityFrameworkCore.Spanner.Tests.csproj | 2 +- ...Google.Cloud.EntityFrameworkCore.Spanner.csproj | 2 +- .../Internal/SpannerHistoryRepository.cs | 14 ++++++++++++++ .../Internal/SpannerRelationalConnection.cs | 3 ++- 12 files changed, 26 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 786e0513..427c8878 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -15,7 +15,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/.github/workflows/integration-tests-on-emulator.yml b/.github/workflows/integration-tests-on-emulator.yml index d5e62f72..e8802dab 100644 --- a/.github/workflows/integration-tests-on-emulator.yml +++ b/.github/workflows/integration-tests-on-emulator.yml @@ -22,7 +22,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/.github/workflows/integration-tests-on-production.yml b/.github/workflows/integration-tests-on-production.yml index d8fa29b9..01d13ec2 100644 --- a/.github/workflows/integration-tests-on-production.yml +++ b/.github/workflows/integration-tests-on-production.yml @@ -27,7 +27,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - id: 'auth' uses: 'google-github-actions/auth@v3' with: diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index b27d9d94..10eb03f0 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -13,7 +13,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks.csproj index ee140662..0dc1a755 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks/Google.Cloud.EntityFrameworkCore.Spanner.Benchmarks.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj index 02794cc2..45752277 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 false diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/QueryTests.cs b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/QueryTests.cs index 3905516b..41e965ba 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/QueryTests.cs +++ b/Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests/QueryTests.cs @@ -692,7 +692,7 @@ public async Task CanUseStringFormat() var formattedName = await db.Singers .Where(s => new long[] { singerId }.Contains(s.SingerId)) - .Select(s => string.Format("String without formatting")) + .Select(s => string.Format("{0}", "String without formatting")) .FirstOrDefaultAsync(); Assert.Equal("String without formatting", formattedName); diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj index 65ee53c5..eaaab01f 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.Samples/Google.Cloud.EntityFrameworkCore.Spanner.Samples.csproj @@ -3,7 +3,7 @@ SampleRunner Exe - net8.0 + net10.0 diff --git a/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj b/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj index d4a6345c..d52a6652 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner.Tests/Google.Cloud.EntityFrameworkCore.Spanner.Tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 false diff --git a/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj b/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj index 25fc4f27..8f67a04a 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj +++ b/Google.Cloud.EntityFrameworkCore.Spanner/Google.Cloud.EntityFrameworkCore.Spanner.csproj @@ -2,7 +2,7 @@ Google Cloud Spanner database provider for Entity Framework Core. - net8.0 + net10.0 Google.Cloud.EntityFrameworkCore.Spanner Google.Cloud.EntityFrameworkCore.Spanner latest diff --git a/Google.Cloud.EntityFrameworkCore.Spanner/Migrations/Internal/SpannerHistoryRepository.cs b/Google.Cloud.EntityFrameworkCore.Spanner/Migrations/Internal/SpannerHistoryRepository.cs index 0312c0cc..af304fbc 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner/Migrations/Internal/SpannerHistoryRepository.cs +++ b/Google.Cloud.EntityFrameworkCore.Spanner/Migrations/Internal/SpannerHistoryRepository.cs @@ -17,6 +17,8 @@ using Microsoft.EntityFrameworkCore.Storage; using System; using System.Text; +using System.Threading; +using System.Threading.Tasks; namespace Google.Cloud.EntityFrameworkCore.Spanner.Migrations.Internal { @@ -68,6 +70,18 @@ protected override string ExistsSql /// protected override bool InterpretExistsResult(object value) => (bool)value; + public override LockReleaseBehavior LockReleaseBehavior => LockReleaseBehavior.Explicit; + + public override IMigrationsDatabaseLock AcquireDatabaseLock() + { + throw new NotImplementedException(); + } + + public override Task AcquireDatabaseLockAsync(CancellationToken cancellationToken = new CancellationToken()) + { + throw new NotImplementedException(); + } + /// /// This is internal functionality and not intended for public use. /// diff --git a/Google.Cloud.EntityFrameworkCore.Spanner/Storage/Internal/SpannerRelationalConnection.cs b/Google.Cloud.EntityFrameworkCore.Spanner/Storage/Internal/SpannerRelationalConnection.cs index ae5f3f7c..b795d98b 100644 --- a/Google.Cloud.EntityFrameworkCore.Spanner/Storage/Internal/SpannerRelationalConnection.cs +++ b/Google.Cloud.EntityFrameworkCore.Spanner/Storage/Internal/SpannerRelationalConnection.cs @@ -110,7 +110,8 @@ public ISpannerRelationalConnection CreateMasterConnection() Dependencies.ConnectionStringResolver, Dependencies.RelationalTransactionFactory, Dependencies.CurrentContext, - Dependencies.RelationalCommandBuilderFactory); + Dependencies.RelationalCommandBuilderFactory, + Dependencies.ExceptionDetector); #pragma warning restore EF1001 return new SpannerRelationalConnection(dependencies); }