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 356ab526..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 @@ -19,8 +19,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive 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 7ec89144..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 @@ -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..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 @@ -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..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 @@ -21,11 +21,11 @@ - - - + + + - + 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); }