diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.PagingQueryingEnumerable.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.PagingQueryingEnumerable.cs index ea799120b80..97647d03316 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.PagingQueryingEnumerable.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.PagingQueryingEnumerable.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using Microsoft.EntityFrameworkCore.Cosmos.Diagnostics.Internal; using Microsoft.EntityFrameworkCore.Cosmos.Extensions.Internal; using CosmosSqlQuery = Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosSqlQuery; @@ -93,7 +91,7 @@ private sealed class AsyncEnumerator : IAsyncEnumerator> private readonly IDiagnosticsLogger _commandLogger; private readonly bool _standAloneStateManager; private readonly CancellationToken _cancellationToken; - private readonly IConcurrencyDetector _concurrencyDetector; + private readonly IConcurrencyDetector? _concurrencyDetector; private readonly IExceptionDetector _exceptionDetector; private bool _hasExecuted; @@ -135,9 +133,9 @@ public async ValueTask MoveNextAsync() _hasExecuted = true; - var maxItemCount = (int)_cosmosQueryContext.Parameters[_queryingEnumerable._maxItemCountParameterName]; + var maxItemCount = (int)_cosmosQueryContext.Parameters[_queryingEnumerable._maxItemCountParameterName]!; var continuationToken = - (string)_cosmosQueryContext.Parameters[_queryingEnumerable._continuationTokenParameterName]; + (string?)_cosmosQueryContext.Parameters[_queryingEnumerable._continuationTokenParameterName]; var responseContinuationTokenLimitInKb = (int?) _cosmosQueryContext.Parameters[_queryingEnumerable._responseContinuationTokenLimitInKbParameterName]; diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ParameterInliner.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ParameterInliner.cs index caf309c6fd8..d2f4c831a65 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ParameterInliner.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ParameterInliner.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using System.Collections; namespace Microsoft.EntityFrameworkCore.Cosmos.Query.Internal; @@ -11,7 +9,7 @@ public partial class CosmosShapedQueryCompilingExpressionVisitor { private sealed class ParameterInliner( ISqlExpressionFactory sqlExpressionFactory, - IReadOnlyDictionary parametersValues) + IReadOnlyDictionary parametersValues) : ExpressionVisitor { protected override Expression VisitExtension(Expression expression) @@ -37,7 +35,7 @@ protected override Expression VisitExtension(Expression expression) { var typeMapping = valuesParameter.TypeMapping; var mutableValues = new List(); - foreach (var value in (IEnumerable)parametersValues[valuesParameter.Name]) + foreach (var value in (IEnumerable)parametersValues[valuesParameter.Name]!) { mutableValues.Add(sqlExpressionFactory.Constant(value, value?.GetType() ?? typeof(object), typeMapping)); } @@ -68,7 +66,7 @@ protected override Expression VisitExtension(Expression expression) { hybridSearch.ApplyLimit( sqlExpressionFactory.Constant( - parametersValues[limitPrm.Name], + parametersValues[limitPrm.Name]!, limitPrm.TypeMapping)); } @@ -76,7 +74,7 @@ protected override Expression VisitExtension(Expression expression) { hybridSearch.ApplyOffset( sqlExpressionFactory.Constant( - parametersValues[offsetPrm.Name], + parametersValues[offsetPrm.Name]!, offsetPrm.TypeMapping)); } @@ -98,7 +96,7 @@ protected override Expression VisitExtension(Expression expression) when (name is "FullTextContainsAny" or "FullTextContainsAll" or "FullTextScore") && type == typeof(string[]): { var keywordValues = new List(); - foreach (var value in (IEnumerable)parametersValues[keywords.Name]) + foreach (var value in (IEnumerable)parametersValues[keywords.Name]!) { keywordValues.Add(sqlExpressionFactory.Constant(value, typeof(string), elementTypeMapping)); } diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs index ca432a131b7..759eac3f78d 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using System.Collections; using Microsoft.EntityFrameworkCore.Cosmos.Internal; using Microsoft.EntityFrameworkCore.Cosmos.Metadata.Internal; @@ -77,7 +75,7 @@ private bool TryGetResourceId(out string resourceId) jsonIdDefinition != null, "Should not be using this enumerable if not using ReadItem, which needs an id definition."); - var values = new List(jsonIdDefinition.Properties.Count); + var values = new List(jsonIdDefinition.Properties.Count); foreach (var property in jsonIdDefinition.Properties) { var value = _readItemInfo.PropertyValues[property] switch @@ -103,7 +101,7 @@ private sealed class AsyncEnumerator : IAsyncEnumerator private readonly Type _contextType; private readonly IDiagnosticsLogger _queryLogger; private readonly bool _standAloneStateManager; - private readonly IConcurrencyDetector _concurrencyDetector; + private readonly IConcurrencyDetector? _concurrencyDetector; private readonly IExceptionDetector _exceptionDetector; private readonly ReadItemQueryingEnumerable _readItemEnumerable; private readonly CancellationToken _cancellationToken; @@ -123,6 +121,7 @@ public AsyncEnumerator(ReadItemQueryingEnumerable readItemEnumerable, Cancell _exceptionDetector = _cosmosQueryContext.ExceptionDetector; _readItemEnumerable = readItemEnumerable; _cancellationToken = cancellationToken; + Current = default!; _concurrencyDetector = readItemEnumerable._threadSafetyChecksEnabled ? _cosmosQueryContext.ConcurrencyDetector @@ -187,18 +186,20 @@ public void Reset() private bool ShapeResult() { - var hasNext = _response is not null; - _cosmosQueryContext.InitializeStateManager(_standAloneStateManager); - Current - = hasNext - ? _shaper(_cosmosQueryContext, _response.Value, ordinal: 0, out _) - : default; + if (_response is not { } response) + { + Current = default!; + _hasExecuted = true; + return false; + } + + Current = _shaper(_cosmosQueryContext, response, ordinal: 0, out _); _hasExecuted = true; - return hasNext; + return true; } } } diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.cs index a53a2d92b65..d3a2854fcd8 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using Microsoft.EntityFrameworkCore.Internal; using static System.Linq.Expressions.Expression; @@ -42,7 +40,7 @@ protected override Expression VisitShapedQuery(ShapedQueryExpression shapedQuery var shaperBody = shapedQueryExpression.ShaperExpression; var (paging, maxItemCount, continuationToken, responseContinuationTokenLimitInKb) = - (false, (SqlParameterExpression)null, (SqlParameterExpression)null, (SqlParameterExpression)null); + (false, (SqlParameterExpression?)null, (SqlParameterExpression?)null, (SqlParameterExpression?)null); // If the query is terminated ToPageAsync(), CosmosQueryableMethodTranslatingExpressionVisitor composed a PagingExpression on top // of the shaper. We remove that to get the shaper for each actual document being read (as opposed to the page of those documents), @@ -108,9 +106,9 @@ protected override Expression VisitShapedQuery(ShapedQueryExpression shapedQuery Constant(cosmosQueryCompilationContext.PartitionKeyPropertyValues), standAloneStateManagerConstant, threadSafetyConstant, - Constant(maxItemCount.Name), - Constant(continuationToken.Name), - Constant(responseContinuationTokenLimitInKb.Name)), + Constant(maxItemCount!.Name), + Constant(continuationToken!.Name), + Constant(responseContinuationTokenLimitInKb!.Name)), _ => New( typeof(QueryingEnumerable<>).MakeGenericType(shaperLambda.ReturnType).GetConstructors()[0], cosmosQueryContextConstant, @@ -129,7 +127,7 @@ protected override Expression VisitShapedQuery(ShapedQueryExpression shapedQuery private static PartitionKey GeneratePartitionKey( IEntityType rootEntityType, List partitionKeyPropertyValues, - IReadOnlyDictionary parameterValues) + IReadOnlyDictionary parameterValues) { if (partitionKeyPropertyValues.Count == 0) { diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitorFactory.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitorFactory.cs index cba22f4c8a0..77a89dda1f6 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitorFactory.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitorFactory.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - namespace Microsoft.EntityFrameworkCore.Cosmos.Query.Internal; /// diff --git a/test/EFCore.Cosmos.FunctionalTests/BuiltInDataTypesCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/BuiltInDataTypesCosmosTest.cs index 5f335be6eff..9539bb00edc 100644 --- a/test/EFCore.Cosmos.FunctionalTests/BuiltInDataTypesCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/BuiltInDataTypesCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class BuiltInDataTypesCosmosTest(BuiltInDataTypesCosmosTest.BuiltInDataTypesCosmosFixture fixture) : BuiltInDataTypesTestBase(fixture) { diff --git a/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorDisabledCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorDisabledCosmosTest.cs index 697b75725e9..d599bf888ea 100644 --- a/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorDisabledCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorDisabledCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorDisabledCosmosTest(ConcurrencyDetectorDisabledCosmosTest.ConcurrencyDetectorCosmosFixture fixture) : ConcurrencyDetectorDisabledTestBase< ConcurrencyDetectorDisabledCosmosTest.ConcurrencyDetectorCosmosFixture>(fixture) diff --git a/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorEnabledCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorEnabledCosmosTest.cs index 9a5e1714e23..8d7ace5f2c2 100644 --- a/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorEnabledCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/ConcurrencyDetectorEnabledCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorEnabledCosmosTest(ConcurrencyDetectorEnabledCosmosTest.ConcurrencyDetectorCosmosFixture fixture) : ConcurrencyDetectorEnabledTestBase< ConcurrencyDetectorEnabledCosmosTest.ConcurrencyDetectorCosmosFixture>(fixture) diff --git a/test/EFCore.Cosmos.FunctionalTests/ConfigPatternsCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/ConfigPatternsCosmosTest.cs index 4f86b66d14f..f4ac913fabf 100644 --- a/test/EFCore.Cosmos.FunctionalTests/ConfigPatternsCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/ConfigPatternsCosmosTest.cs @@ -7,15 +7,13 @@ // ReSharper disable UnusedAutoPropertyAccessor.Local namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.DoesNotUseTokenCredential))] public class ConfigPatternsCosmosTest(ConfigPatternsCosmosTest.CosmosFixture fixture) : IClassFixture { private const string DatabaseName = "ConfigPatternsCosmos"; - private IServiceProvider _serviceProvider; + private IServiceProvider? _serviceProvider; protected CosmosFixture Fixture { get; } = fixture; @@ -167,7 +165,7 @@ public async Task Cosmos_client_instance_is_thread_safe() private DbContextOptions CreateOptions( CosmosTestStore testDatabase, - Action configure = null, + Action? configure = null, bool useExternalServiceProvider = true) { var builder = Fixture.AddOptions(testDatabase.AddProviderOptions(new DbContextOptionsBuilder())) @@ -186,7 +184,7 @@ private DbContextOptions CreateOptions( private class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } private class CustomerContext(DbContextOptions dbContextOptions) : DbContext(dbContextOptions) diff --git a/test/EFCore.Cosmos.FunctionalTests/ConnectionSpecificationTest.cs b/test/EFCore.Cosmos.FunctionalTests/ConnectionSpecificationTest.cs index 60ed8644cf6..d318fd22cf0 100644 --- a/test/EFCore.Cosmos.FunctionalTests/ConnectionSpecificationTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/ConnectionSpecificationTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.DoesNotUseTokenCredential))] public class ConnectionSpecificationTest { @@ -29,7 +27,8 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseCosmos(_connectionString, _name, b => b.ApplyConfiguration()) .ConfigureWarnings(w => w.Ignore(CoreEventId.ManyServiceProvidersCreatedWarning)); - public DbSet Blogs { get; set; } + public DbSet Blogs + => Set(); } [Fact] diff --git a/test/EFCore.Cosmos.FunctionalTests/CosmosApiConsistencyTest.cs b/test/EFCore.Cosmos.FunctionalTests/CosmosApiConsistencyTest.cs index 2f31edb8a02..424469c4473 100644 --- a/test/EFCore.Cosmos.FunctionalTests/CosmosApiConsistencyTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/CosmosApiConsistencyTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CosmosApiConsistencyTest(CosmosApiConsistencyTest.CosmosApiConsistencyFixture fixture) : ApiConsistencyTestBase(fixture) { @@ -51,7 +49,7 @@ public override typeof(CosmosModelExtensions), typeof(CosmosModelExtensions), typeof(CosmosModelBuilderExtensions), - null + null! ) }, { @@ -60,7 +58,7 @@ public override typeof(CosmosEntityTypeExtensions), typeof(CosmosEntityTypeExtensions), typeof(CosmosEntityTypeBuilderExtensions), - null + null! ) }, { @@ -69,16 +67,16 @@ public override typeof(CosmosPropertyExtensions), typeof(CosmosPropertyExtensions), typeof(CosmosPropertyBuilderExtensions), - null + null! ) }, { typeof(IReadOnlyComplexProperty), ( typeof(CosmosComplexPropertyExtensions), - null, - null, + null!, + null!, typeof(CosmosComplexPropertyBuilderExtensions), - null + null! ) }, }; diff --git a/test/EFCore.Cosmos.FunctionalTests/CosmosConcurrencyTest.cs b/test/EFCore.Cosmos.FunctionalTests/CosmosConcurrencyTest.cs index 7fb1da43d1a..e07fbf82cce 100644 --- a/test/EFCore.Cosmos.FunctionalTests/CosmosConcurrencyTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/CosmosConcurrencyTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CosmosConcurrencyTest(CosmosConcurrencyTest.CosmosFixture fixture) : IClassFixture, IAsyncLifetime { @@ -84,7 +82,7 @@ public async Task Etag_is_updated_in_entity_after_SaveChanges(bool? contentRespo Children = { new DummyChild { Id = "0" } } }; - string etag = null; + string? etag = null; await using (var context = CreateContext(options)) { await Fixture.TestStore.CleanAsync(context); @@ -150,7 +148,7 @@ public async Task Etag_is_updated_in_derived_entity_after_SaveChanges(bool? cont Children = { new DummyChild { Id = "0" } } }; - string etag = null; + string? etag = null; await using (var context = CreateContext(options)) { await Fixture.TestStore.CleanAsync(context); @@ -213,7 +211,7 @@ protected virtual Task ConcurrencyTestAsync( /// the database at the end of the process can be validated. /// protected virtual async Task ConcurrencyTestAsync( - Func seedAction, + Func? seedAction, Func storeChange, Func clientChange) where TException : DbUpdateException @@ -273,9 +271,11 @@ protected override ITestStoreFactory TestStoreFactory public class ConcurrencyContext(DbContextOptions options) : PoolableDbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers + => Set(); - public DbSet PremiumCustomers { get; set; } + public DbSet PremiumCustomers + => Set(); protected override void OnModelCreating(ModelBuilder builder) { @@ -293,22 +293,22 @@ protected override void OnModelCreating(ModelBuilder builder) public class Customer { - public string Id { get; set; } + public string Id { get; set; } = null!; - public string Name { get; set; } + public string Name { get; set; } = null!; - public string ETag { get; set; } + public string ETag { get; set; } = null!; public ICollection Children { get; } = new HashSet(); } public class DummyChild { - public string Id { get; init; } + public string Id { get; init; } = null!; } public class PremiumCustomer : Customer { - public string LoyaltyLevel { get; set; } + public string LoyaltyLevel { get; set; } = null!; } } diff --git a/test/EFCore.Cosmos.FunctionalTests/CustomConvertersCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/CustomConvertersCosmosTest.cs index bc5207ce072..225c7f00e37 100644 --- a/test/EFCore.Cosmos.FunctionalTests/CustomConvertersCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/CustomConvertersCosmosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CustomConvertersCosmosTest : CustomConvertersTestBase { public CustomConvertersCosmosTest(CustomConvertersCosmosFixture fixture) diff --git a/test/EFCore.Cosmos.FunctionalTests/EmbeddedDocumentsTest.cs b/test/EFCore.Cosmos.FunctionalTests/EmbeddedDocumentsTest.cs index 61ce38e734e..ddb7f9db269 100644 --- a/test/EFCore.Cosmos.FunctionalTests/EmbeddedDocumentsTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/EmbeddedDocumentsTest.cs @@ -7,8 +7,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class EmbeddedDocumentsTest : IClassFixture { private const string DatabaseName = "EmbeddedDocumentsTest"; @@ -29,9 +27,9 @@ public virtual async Task Can_update_dependents() Engine firstEngine; using (var context = new EmbeddedTransportationContext(options)) { - firstOperator = context.Set().Select(v => v.Operator).OrderBy(o => o.VehicleName).First(); + firstOperator = context.Set().Select(v => v.Operator!).OrderBy(o => o.VehicleName).First(); firstOperator.Name += "1"; - firstEngine = context.Set().Select(v => v.Engine).OrderBy(o => o.VehicleName).First(); + firstEngine = context.Set().Select(v => v.Engine!).OrderBy(o => o.VehicleName).First(); firstEngine.Description += "1"; await context.SaveChangesAsync(); @@ -40,11 +38,11 @@ public virtual async Task Can_update_dependents() using (var context = new EmbeddedTransportationContext(options)) { var @operator = await context.Set() - .Select(v => v.Operator).OrderBy(o => o.VehicleName).FirstAsync(); + .Select(v => v.Operator!).OrderBy(o => o.VehicleName).FirstAsync(); Assert.Equal(firstOperator.Name, @operator.Name); var engine = await context.Set() - .Select(v => v.Engine).OrderBy(o => o.VehicleName).FirstAsync(); + .Select(v => v.Engine!).OrderBy(o => o.VehicleName).FirstAsync(); Assert.Equal(firstEngine.Description, engine.Description); } } @@ -542,7 +540,7 @@ public virtual async Task Can_use_non_int_keys_for_embedded_entities() await context.AddAsync(person); var addressEntry = context.Entry(address); - addressGuid = (Guid)addressEntry.Property("Id").CurrentValue; + addressGuid = (Guid)addressEntry.Property("Id").CurrentValue!; await context.SaveChangesAsync(); } @@ -557,7 +555,7 @@ public virtual async Task Can_use_non_int_keys_for_embedded_entities() Assert.Equal(address.City, addresses[0].City); var addressEntry = context.Entry(addresses[0]); - Assert.Equal(addressGuid, (Guid)addressEntry.Property("Id").CurrentValue); + Assert.Equal(addressGuid, (Guid)addressEntry.Property("Id").CurrentValue!); } } @@ -576,7 +574,7 @@ FROM root c WHERE (c["$type"] IN ("Vehicle", "PoweredVehicle") AND (c["Name"] = "AIM-9M Sidewinder")) OFFSET 0 LIMIT 1 """); - Assert.Equal("Heat-seeking", missile.Operator.Details.Type); + Assert.Equal("Heat-seeking", missile.Operator.Details!.Type); missile.Operator.Details.Type = "IR"; @@ -587,7 +585,7 @@ OFFSET 0 LIMIT 1 { var missile = await context.Set().FirstAsync(v => v.Name == "AIM-9M Sidewinder"); - Assert.Equal("IR", missile.Operator.Details.Type); + Assert.Equal("IR", missile.Operator.Details!.Type); } } @@ -805,10 +803,10 @@ protected override ITestStoreFactory TestStoreFactory public virtual CosmosTestStore TestStore { get; } = CosmosTestStore.Create(DatabaseName); public async Task CreateOptions( - Action onModelCreating = null, + Action? onModelCreating = null, bool seed = true) { - EmbeddedTransportationContextOptions embeddedOptions = null; + EmbeddedTransportationContextOptions? embeddedOptions = null; await TestStore.InitializeAsync( ServiceProvider, @@ -823,7 +821,7 @@ await TestStore.InitializeAsync( }); ListLoggerFactory.Clear(); - return embeddedOptions; + return embeddedOptions!; } protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context) @@ -833,7 +831,7 @@ public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder build => base.AddOptions(builder).ConfigureWarnings(w => w.Ignore(CosmosEventId.NoPartitionKeyDefined).Ignore(CoreEventId.MappedNavigationIgnoredWarning)); - protected override object GetAdditionalModelCacheKey(DbContext context) + protected override object? GetAdditionalModelCacheKey(DbContext context) { var options = ((EmbeddedTransportationContext)context).Options; return options.OnModelCreating == null @@ -848,7 +846,7 @@ public async ValueTask DisposeAsync() => await TestStore.DisposeAsync(); } - public record class EmbeddedTransportationContextOptions(DbContextOptions Options, Action OnModelCreating); + public record class EmbeddedTransportationContextOptions(DbContextOptions Options, Action? OnModelCreating); protected class EmbeddedTransportationContext(EmbeddedTransportationContextOptions options) : TransportationContext(options.Options) { @@ -921,33 +919,33 @@ private abstract class PersonBase private class Person : PersonBase { - public Address MainAddress { get; set; } + public Address MainAddress { get; set; } = null!; public ICollection
Addresses { get; set; } = []; } public class Address { - public string Street { get; set; } - public string City { get; set; } - public AddressTitle AddressTitle { get; set; } + public string Street { get; set; } = null!; + public string City { get; set; } = null!; + public AddressTitle AddressTitle { get; set; } = null!; public ICollection Notes { get; set; } = []; public ICollection IdNotes { get; set; } = []; } public class AddressTitle { - public string Title { get; set; } + public string Title { get; set; } = null!; } public class Note { - public string Content { get; set; } + public string Content { get; set; } = null!; } public class NoteWithId { public int Id { get; set; } public int AddressId { get; set; } - public string Content { get; set; } + public string Content { get; set; } = null!; } } diff --git a/test/EFCore.Cosmos.FunctionalTests/EndToEndCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/EndToEndCosmosTest.cs index 5147a77ec13..9c1b5a5fc8a 100644 --- a/test/EFCore.Cosmos.FunctionalTests/EndToEndCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/EndToEndCosmosTest.cs @@ -9,8 +9,6 @@ // ReSharper disable UnusedMember.Local namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class EndToEndCosmosTest(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture { [Theory, InlineData(false), InlineData(true)] @@ -75,7 +73,7 @@ public async Task Can_add_update_delete_end_to_end(bool transactionalBatch) using (var context = CreateContext(contextFactory, transactionalBatch)) { - var customerFromStore = await context.FindAsync(42); + var customerFromStore = (await context.FindAsync(42))!; var logEntry = ListLoggerFactory.Log.Single(e => e.Id == CosmosEventId.ExecutedReadItem); Assert.Equal(LogLevel.Information, logEntry.Level); @@ -118,7 +116,7 @@ public async Task Can_add_update_delete_detached_entity_end_to_end(bool transact onConfiguring: o => o.ConfigureWarnings(w => w.Log(CosmosEventId.NoPartitionKeyDefined))); var customer = new Customer { Id = 42, Name = "Theon" }; - string storeId = null; + string? storeId = null; using (var context = CreateContext(contextFactory, transactionalBatch)) { var entry = await context.AddAsync(customer); @@ -294,16 +292,16 @@ public async Task Can_add_update_delete_end_to_end_with_DateTime(bool transactio private class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public int PartitionKey1 { get; set; } public bool PartitionKey3 { get; set; } - public string PartitionKey2 { get; set; } + public string PartitionKey2 { get; set; } = null!; } private class CustomerWithResourceId { - public string id { get; set; } - public string Name { get; set; } + public string id { get; set; } = null!; + public string Name { get; set; } = null!; public int PartitionKey1 { get; set; } public decimal PartitionKey2 { get; set; } } @@ -311,14 +309,14 @@ private class CustomerWithResourceId private class CustomerGuid { public Guid Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public int PartitionKey { get; set; } } private class CustomerDateTime { public DateTime Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public int PartitionKey { get; set; } public int Value { get; set; } } @@ -326,7 +324,7 @@ private class CustomerDateTime private class CustomerNoPartitionKey { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } [Theory, InlineData(false), InlineData(true)] @@ -365,7 +363,7 @@ public async Task Can_add_update_delete_with_dateTime_string_end_to_end(bool tra using (var context = CreateContext(contextFactory, transactionalBatch)) { - var customerFromStore = await context.FindAsync(42); + var customerFromStore = (await context.FindAsync(42))!; Assert.Equal(42, customerFromStore.Id); Assert.Equal("2021-08-23T06:23:40+02:00", customerFromStore.Name); @@ -438,8 +436,11 @@ public async Task Entities_can_be_tracked_with_normal_use_of_DbContext_methods_a protected class IdentifierShadowValuePresenceTestContext(DbContextOptions dbContextOptions) : DbContext(dbContextOptions) { - public DbSet GItems { get; set; } - public DbSet Items { get; set; } + public DbSet GItems + => Set(); + + public DbSet Items + => Set(); } protected class GItem @@ -476,7 +477,7 @@ await Can_add_update_delete_with_collection( }, [3, null]); - await Can_add_update_delete_with_collection>( + await Can_add_update_delete_with_collection>( transactionalBatch, ["1", null], c => c.Collection = @@ -561,7 +562,7 @@ await Can_add_update_delete_with_collection( }, new List> { new() { 3 } }); - await Can_add_update_delete_with_collection>( + await Can_add_update_delete_with_collection>( transactionalBatch, [], c => @@ -571,14 +572,14 @@ await Can_add_update_delete_with_collection( }, [new byte?[] { 3, null }, null]); - await Can_add_update_delete_with_collection>>( + await Can_add_update_delete_with_collection>>( transactionalBatch, - [new Dictionary { { "1", null } }], + [new Dictionary { { "1", null } }], c => { var dictionary = c.Collection[0]["3"] = "2"; }, - [new Dictionary { { "1", null }, { "3", "2" } }]); + [new Dictionary { { "1", null }, { "3", "2" } }]); await Can_add_update_delete_with_collection( transactionalBatch, @@ -605,49 +606,49 @@ await Can_add_update_delete_with_collection( c => c.Collection["2"] = ["3"], new Dictionary { { "1", ["1"] }, { "2", ["3"] } }); - await Can_add_update_delete_with_collection>( + await Can_add_update_delete_with_collection>( transactionalBatch, - new SortedDictionary { { "2", [2] }, { "1", [1] } }, + new SortedDictionary { { "2", [2] }, { "1", [1] } }, c => { c.Collection.Clear(); c.Collection["2"] = [null]; }, - new SortedDictionary { { "2", [null] } }); + new SortedDictionary { { "2", [null] } }); - await Can_add_update_delete_with_collection>( + await Can_add_update_delete_with_collection>( transactionalBatch, - new SortedDictionary { { "2", [2] }, { "1", [1] } }, + new SortedDictionary { { "2", [2] }, { "1", [1] } }, c => { c.Collection.Clear(); c.Collection["2"] = null; }, - new SortedDictionary { { "2", null } }); + new SortedDictionary { { "2", null } }); - await Can_add_update_delete_with_collection>>( + await Can_add_update_delete_with_collection?>>( transactionalBatch, - new Dictionary> + new Dictionary?> { { "2", new Dictionary { { "value", 2 } } }, { "1", new Dictionary { { "value", 1 } } } }, - c => c.Collection = new Dictionary> + c => c.Collection = new Dictionary?> { { "1", new Dictionary { { "value", 1 } } }, { "2", null } }, - new Dictionary> + new Dictionary?> { { "1", new Dictionary { { "value", 1 } } }, { "2", null } }); - await Can_add_update_delete_with_collection>>( + await Can_add_update_delete_with_collection?>>( transactionalBatch, - ImmutableDictionary>.Empty + ImmutableDictionary?>.Empty .Add("2", new Dictionary { { "value", 2 } }) .Add("1", new Dictionary { { "value", 1 } }), - c => c.Collection = ImmutableDictionary>.Empty + c => c.Collection = ImmutableDictionary?>.Empty .Add("1", new Dictionary { { "value", 1 } }).Add("2", null), - new Dictionary> + new Dictionary?> { { "1", new Dictionary { { "value", 1 } } }, { "2", null } }); @@ -707,7 +708,7 @@ private async Task Can_add_update_delete_with_collection( TCollection initialValue, Action> modify, TCollection modifiedValue, - Action onModelBuilder = null) + Action? onModelBuilder = null) where TCollection : class { var contextFactory = await InitializeNonSharedTest>( @@ -748,7 +749,7 @@ private async Task Can_add_update_delete_with_collection( Assert.Equal(42, customerFromStore.Id); Assert.Equal(modifiedValue, customerFromStore.Collection); - customerFromStore.Collection = null; + customerFromStore.Collection = null!; await context.SaveChangesAsync(); } @@ -765,15 +766,16 @@ private async Task Can_add_update_delete_with_collection( private class CustomerWithCollection { public int Id { get; set; } - public string Name { get; set; } - public TCollection Collection { get; set; } + public string Name { get; set; } = null!; + public TCollection Collection { get; set; } = default!; } - private class CollectionCustomerContext(DbContextOptions dbContextOptions, Action onModelBuilder = null) + private class CollectionCustomerContext(DbContextOptions dbContextOptions, Action? onModelBuilder = null) : DbContext(dbContextOptions) { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet> Customers { get; set; } + public DbSet> Customers + => Set>(); protected override void OnModelCreating(ModelBuilder modelBuilder) => onModelBuilder?.Invoke(modelBuilder); @@ -816,8 +818,8 @@ await context.AddAsync( await using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set() - .FindAsync(pk1, 3.15m, "42"); + var customerFromStore = (await context.Set() + .FindAsync(pk1, 3.15m, "42"))!; Assert.Equal("42", customerFromStore.id); Assert.Equal("Theon", customerFromStore.Name); @@ -895,8 +897,8 @@ await context.AddAsync( await using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set() - .FindAsync(pk1, 42, "One", true); + var customerFromStore = (await context.Set() + .FindAsync(pk1, 42, "One", true))!; Assert.Equal(42, customerFromStore.Id); Assert.Equal("Theon", customerFromStore.Name); @@ -957,8 +959,8 @@ public async Task Can_read_with_find_with_partition_key_without_value_generator( using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set() - .FindAsync(pk1, "One", true, 42); + var customerFromStore = (await context.Set() + .FindAsync(pk1, "One", true, 42))!; Assert.Equal(42, customerFromStore.Id); Assert.Equal("Theon", customerFromStore.Name); @@ -1017,7 +1019,7 @@ public async Task Can_read_with_find_with_partition_key_not_part_of_primary_key( using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set().FindAsync(42); + var customerFromStore = (await context.Set().FindAsync(42))!; Assert.Equal(42, customerFromStore.Id); Assert.Equal("Theon", customerFromStore.Name); @@ -1043,7 +1045,7 @@ public async Task Can_read_with_find_without_partition_key() await using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set().FindAsync(42); + var customerFromStore = (await context.Set().FindAsync(42))!; Assert.Equal(42, customerFromStore.Id); Assert.Equal("Theon", customerFromStore.Name); @@ -1067,7 +1069,7 @@ public async Task Can_read_with_find_with_PK_partition_key() await using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set().FindAsync(customer.Id); + var customerFromStore = (await context.Set().FindAsync(customer.Id))!; Assert.Equal(customer.Id, customerFromStore.Id); Assert.Equal("Theon", customerFromStore.Name); @@ -1091,7 +1093,7 @@ public async Task Can_read_with_find_with_PK_resource_id() await using (var context = CreateContext(contextFactory, false)) { - var customerFromStore = await context.Set().FindAsync("42"); + var customerFromStore = (await context.Set().FindAsync("42"))!; Assert.Equal("42", customerFromStore.id); Assert.Equal("Theon", customerFromStore.Name); @@ -1456,7 +1458,7 @@ private class ConflictingIncompatibleId { // ReSharper disable once InconsistentNaming public int id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } public class ConflictingIncompatibleIdContext(DbContextOptions dbContextOptions) : DbContext(dbContextOptions) @@ -1521,8 +1523,8 @@ public async Task Can_add_update_delete_end_to_end_with_conflicting_id(bool tran private class ConflictingId { - public string id { get; set; } - public string Name { get; set; } + public string id { get; set; } = null!; + public string Name { get; set; } = null!; } public class ConflictingIdContext(DbContextOptions dbContextOptions) : DbContext(dbContextOptions) @@ -1642,7 +1644,7 @@ private void AssertSql(DbContext context, params string[] expected) logger.AssertBaseline(expected); } - protected ListLoggerFactory LoggerFactory { get; } + protected ListLoggerFactory LoggerFactory { get; } = null!; protected override string NonSharedStoreName => nameof(EndToEndCosmosTest); @@ -1650,12 +1652,12 @@ protected override string NonSharedStoreName protected override ITestStoreFactory NonSharedTestStoreFactory => CosmosTestStoreFactory.Instance; - protected ContextFactory ContextFactory { get; private set; } + protected ContextFactory ContextFactory { get; private set; } = null!; protected async Task InitializeAsync( Action onModelCreating, - Func onConfiguring = null, - Func seed = null, + Func? onConfiguring = null, + Func? seed = null, bool sensitiveLogEnabled = true) => ContextFactory = await InitializeNonSharedTest( onModelCreating, diff --git a/test/EFCore.Cosmos.FunctionalTests/F1CosmosFixture.cs b/test/EFCore.Cosmos.FunctionalTests/F1CosmosFixture.cs index 7fc2b01d164..f02abcc454c 100644 --- a/test/EFCore.Cosmos.FunctionalTests/F1CosmosFixture.cs +++ b/test/EFCore.Cosmos.FunctionalTests/F1CosmosFixture.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class F1CosmosFixture : F1FixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Cosmos.FunctionalTests/FindCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/FindCosmosTest.cs index a189d2ca20b..daa9b9a6ad2 100644 --- a/test/EFCore.Cosmos.FunctionalTests/FindCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/FindCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class FindCosmosTest : FindTestBase { protected FindCosmosTest(FindCosmosFixture fixture) diff --git a/test/EFCore.Cosmos.FunctionalTests/KeysWithConvertersCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/KeysWithConvertersCosmosTest.cs index 587713efc3e..0f73b9eff9d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/KeysWithConvertersCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/KeysWithConvertersCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class KeysWithConvertersCosmosTest(KeysWithConvertersCosmosTest.KeysWithConvertersCosmosFixture fixture) : KeysWithConvertersTestBase(fixture) { diff --git a/test/EFCore.Cosmos.FunctionalTests/MaterializationInterceptionCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/MaterializationInterceptionCosmosTest.cs index 352388ec1ad..3350634cd0d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/MaterializationInterceptionCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/MaterializationInterceptionCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class MaterializationInterceptionCosmosTest(NonSharedFixture fixture) : MaterializationInterceptionTestBase(fixture) { diff --git a/test/EFCore.Cosmos.FunctionalTests/ModelBuilding/CosmosTestModelBuilderExtensions.cs b/test/EFCore.Cosmos.FunctionalTests/ModelBuilding/CosmosTestModelBuilderExtensions.cs index e4dd05bef7d..ca6d13516b8 100644 --- a/test/EFCore.Cosmos.FunctionalTests/ModelBuilding/CosmosTestModelBuilderExtensions.cs +++ b/test/EFCore.Cosmos.FunctionalTests/ModelBuilding/CosmosTestModelBuilderExtensions.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.ModelBuilding; -#nullable disable - public static class CosmosTestModelBuilderExtensions { public static ModelBuilderTest.TestModelBuilder HasShadowIds( diff --git a/test/EFCore.Cosmos.FunctionalTests/OptimisticConcurrencyCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/OptimisticConcurrencyCosmosTest.cs index d0dcdb8d997..0ce46deb30e 100644 --- a/test/EFCore.Cosmos.FunctionalTests/OptimisticConcurrencyCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/OptimisticConcurrencyCosmosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OptimisticConcurrencyCosmosTest(F1CosmosFixture fixture) : OptimisticConcurrencyTestBase, byte[]>(fixture), IAsyncLifetime { diff --git a/test/EFCore.Cosmos.FunctionalTests/OverzealousInitializationCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/OverzealousInitializationCosmosTest.cs index 62888b8c421..1ae93435b22 100644 --- a/test/EFCore.Cosmos.FunctionalTests/OverzealousInitializationCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/OverzealousInitializationCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OverzealousInitializationCosmosTest(OverzealousInitializationCosmosTest.OverzealousInitializationCosmosFixture fixture) : OverzealousInitializationTestBase(fixture) { diff --git a/test/EFCore.Cosmos.FunctionalTests/PartitionKeyTest.cs b/test/EFCore.Cosmos.FunctionalTests/PartitionKeyTest.cs index a786dc6a46a..2a5510c97d6 100644 --- a/test/EFCore.Cosmos.FunctionalTests/PartitionKeyTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/PartitionKeyTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - // TODO: Consider removing these in favor of ReadItemPartitionKeyQueryTest public class PartitionKeyTest : IClassFixture { @@ -190,7 +188,8 @@ public TestSqlLoggerFactory TestSqlLoggerFactory public class PartitionKeyContext(DbContextOptions dbContextOptions) : DbContext(dbContextOptions) { - public virtual DbSet Customers { get; set; } + public virtual DbSet Customers + => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(cb => @@ -204,7 +203,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public int PartitionKey { get; set; } } } diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/AdHocMiscellaneousQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/AdHocMiscellaneousQueryCosmosTest.cs index bf287054f1b..930f1838d60 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/AdHocMiscellaneousQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/AdHocMiscellaneousQueryCosmosTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocMiscellaneousQueryCosmosTest(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture { #region 21006 @@ -66,7 +64,8 @@ await AdHocCosmosTestHelpers.CreateCustomEntityHelperAsync( protected class JsonContext21006(DbContextOptions options) : DbContext(options) { - public DbSet Entities { get; set; } + public DbSet Entities + => Set(); public class Entity { @@ -86,7 +85,7 @@ public class Entity public bool TestBoolean { get; set; } public byte TestByte { get; set; } - public byte[] TestByteArray { get; set; } + public byte[] TestByteArray { get; set; } = null!; public Guid TestGuid { get; set; } public ushort TestUnsignedInt16 { get; set; } public uint TestUnsignedInt32 { get; set; } @@ -95,16 +94,16 @@ public class Entity public sbyte TestSignedByte { get; set; } public int? TestNullableInt32 { get; set; } public JsonEnum TestEnum { get; set; } - public byte[] TestByteCollection { get; set; } - public IList TestUnsignedInt16Collection { get; set; } - public uint[] TestUnsignedInt32Collection { get; set; } - public sbyte[] TestSignedByteCollection { get; set; } - public JsonEntity Reference { get; set; } + public byte[] TestByteCollection { get; set; } = null!; + public IList TestUnsignedInt16Collection { get; set; } = null!; + public uint[] TestUnsignedInt32Collection { get; set; } = null!; + public sbyte[] TestSignedByteCollection { get; set; } = null!; + public JsonEntity Reference { get; set; } = null!; } public class JsonEntity { - public string Text { get; set; } + public string Text { get; set; } = null!; public short TestInt16 { get; set; } public int TestInt32 { get; set; } @@ -119,7 +118,7 @@ public class JsonEntity public float TestSingle { get; set; } public bool TestBoolean { get; set; } public byte TestByte { get; set; } - public byte[] TestByteArray { get; set; } + public byte[] TestByteArray { get; set; } = null!; public Guid TestGuid { get; set; } public ushort TestUnsignedInt16 { get; set; } public uint TestUnsignedInt32 { get; set; } @@ -130,11 +129,11 @@ public class JsonEntity public JsonEnum TestEnum { get; set; } public JsonEnum TestEnumWithIntConverter { get; set; } - public byte[] TestByteCollection { get; set; } - public IList TestUnsignedInt16Collection { get; set; } - public uint[] TestUnsignedInt32Collection { get; set; } + public byte[] TestByteCollection { get; set; } = null!; + public IList TestUnsignedInt16Collection { get; set; } = null!; + public uint[] TestUnsignedInt32Collection { get; set; } = null!; - public sbyte[] TestSignedByteCollection { get; set; } + public sbyte[] TestSignedByteCollection { get; set; } = null!; } public enum JsonEnum @@ -169,7 +168,8 @@ public virtual async Task Enum_partition_key() protected class Context34911(DbContextOptions options) : DbContext(options) { - public DbSet Members { get; set; } + public DbSet Members + => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity().HasData(new Member { Id = 1, Name = "Product 1" }); @@ -178,7 +178,7 @@ public class Member { public int Id { get; set; } public MemberType MemberType { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } public enum MemberType @@ -280,7 +280,8 @@ public virtual async Task Average_over_value_type_containing_all_nulls() protected class Context35094(DbContextOptions options) : DbContext(options) { - public DbSet Products { get; set; } + public DbSet Products + => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity().HasData( @@ -299,7 +300,7 @@ public class Product public int Id { get; set; } public double? NullableVal { get; set; } - public string NullableRef { get; set; } + public string? NullableRef { get; set; } } } @@ -361,20 +362,23 @@ public EnumDiscriminatorContext36329(DbContextOptions options) { } - public DbSet Dogs { get; set; } - public DbSet Pets { get; set; } + public DbSet Dogs + => Set(); + + public DbSet Pets + => Set(); } public abstract record Pet36329 { - public string Id { get; set; } + public string Id { get; set; } = null!; public PetType36329 PetType { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } public record Dog36329 : Pet36329 { - public string DogProperty { get; set; } + public string DogProperty { get; set; } = null!; } public enum PetType36329 diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/FromSqlQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/FromSqlQueryCosmosTest.cs index 481b82a7f47..4b50d2f98b7 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/FromSqlQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/FromSqlQueryCosmosTest.cs @@ -126,7 +126,7 @@ public Task FromSqlRaw_queryable_composed(bool async) """ SELECT * FROM root c WHERE c["$type"] = "Customer" """) - .Where(c => c.ContactName.Contains("z")); + .Where(c => c.ContactName!.Contains("z")); var sql = query.ToQueryString(); @@ -155,7 +155,7 @@ public virtual Task FromSqlRaw_queryable_composed_after_removing_whitespaces(boo using var context = CreateContext(); var query = context.Set().FromSqlRaw( _eol + " " + _eol + _eol + _eol + "SELECT" + _eol + @"* FROM root c WHERE c[""$type""] = ""Customer""") - .Where(c => c.ContactName.Contains("z")); + .Where(c => c.ContactName!.Contains("z")); var actual = a ? await query.ToArrayAsync() @@ -194,7 +194,7 @@ public Task FromSqlRaw_queryable_composed_compiled(bool async) """ SELECT * FROM root c WHERE c["$type"] = "Customer" """) - .Where(c => c.ContactName.Contains("z"))); + .Where(c => c.ContactName!.Contains("z"))); using (var context = CreateContext()) { @@ -207,7 +207,7 @@ public Task FromSqlRaw_queryable_composed_compiled(bool async) { var query = EF.CompileQuery((NorthwindContext context) => context.Set() .FromSqlRaw("""SELECT * FROM root c WHERE c["$type"] = "Customer" """) - .Where(c => c.ContactName.Contains("z"))); + .Where(c => c.ContactName!.Contains("z"))); using (var context = CreateContext()) { @@ -236,7 +236,7 @@ public virtual Task FromSqlRaw_queryable_composed_compiled_with_parameter(bool a { var query = EF.CompileAsyncQuery((NorthwindContext context) => context.Set().FromSqlRaw( """SELECT * FROM root c WHERE c["$type"] = "Customer" AND c["id"] = {0}""", "CONSH") - .Where(c => c.ContactName.Contains("z"))); + .Where(c => c.ContactName!.Contains("z"))); using (var context = CreateContext()) { @@ -249,7 +249,7 @@ public virtual Task FromSqlRaw_queryable_composed_compiled_with_parameter(bool a { var query = EF.CompileQuery((NorthwindContext context) => context.Set().FromSqlRaw( """SELECT * FROM root c WHERE c["$type"] = "Customer" AND c["id"] = {0}""", "CONSH") - .Where(c => c.ContactName.Contains("z"))); + .Where(c => c.ContactName!.Contains("z"))); using (var context = CreateContext()) { diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosFixture.cs b/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosFixture.cs index 83521a667c0..1b49b67e4df 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosFixture.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class InheritanceQueryCosmosFixture : InheritanceQueryFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosTest.cs index b1cac0131eb..6ea8321ce29 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/Inheritance/InheritanceQueryCosmosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class InheritanceQueryCosmosTest : InheritanceQueryTestBase { public InheritanceQueryCosmosTest(InheritanceQueryCosmosFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosFixture.cs b/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosFixture.cs index 3df29ba7f95..b882f1e3e12 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosFixture.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class JsonQueryCosmosFixture : JsonQueryFixtureBase { public TestSqlLoggerFactory TestSqlLoggerFactory @@ -221,7 +219,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (EntityBasic)e; + var ee = (EntityBasic)e!; var aa = (EntityBasic)a; Assert.Equal(ee.Id, aa.Id); @@ -235,7 +233,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityBasic)e; + var ee = (JsonEntityBasic)e!; var aa = (JsonEntityBasic)a; Assert.Equal(ee.Id, aa.Id); @@ -243,7 +241,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con if (ee.OwnedReferenceRoot is not null || aa.OwnedReferenceRoot is not null) { - AssertCosmosOwnedRoot(ee.OwnedReferenceRoot, aa.OwnedReferenceRoot); + AssertCosmosOwnedRoot(ee.OwnedReferenceRoot!, aa.OwnedReferenceRoot!); Assert.Equal(ee.OwnedCollectionRoot.Count, aa.OwnedCollectionRoot.Count); for (var i = 0; i < ee.OwnedCollectionRoot.Count; i++) @@ -260,7 +258,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityBasicForReference)e; + var ee = (JsonEntityBasicForReference)e!; var aa = (JsonEntityBasicForReference)a; Assert.Equal(ee.Id, aa.Id); @@ -275,7 +273,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityBasicForCollection)e; + var ee = (JsonEntityBasicForCollection)e!; var aa = (JsonEntityBasicForCollection)a; Assert.Equal(ee.Id, aa.Id); @@ -289,7 +287,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con { if (a != null) { - var ee = (JsonOwnedRoot)e; + var ee = (JsonOwnedRoot)e!; var aa = (JsonOwnedRoot)a; AssertCosmosOwnedRoot(ee, aa); @@ -301,7 +299,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con { if (a != null) { - var ee = (JsonOwnedBranch)e; + var ee = (JsonOwnedBranch)e!; var aa = (JsonOwnedBranch)a; AssertCosmosOwnedBranch(ee, aa); @@ -313,7 +311,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con { if (a != null) { - var ee = (JsonOwnedLeaf)e; + var ee = (JsonOwnedLeaf)e!; var aa = (JsonOwnedLeaf)a; AssertOwnedLeaf(ee, aa); @@ -326,7 +324,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityCustomNaming)e; + var ee = (JsonEntityCustomNaming)e!; var aa = (JsonEntityCustomNaming)a; Assert.Equal(ee.Id, aa.Id); @@ -347,7 +345,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con { if (a != null) { - var ee = (JsonOwnedCustomNameRoot)e; + var ee = (JsonOwnedCustomNameRoot)e!; var aa = (JsonOwnedCustomNameRoot)a; AssertCustomNameRoot(ee, aa); @@ -359,7 +357,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con { if (a != null) { - var ee = (JsonOwnedCustomNameBranch)e; + var ee = (JsonOwnedCustomNameBranch)e!; var aa = (JsonOwnedCustomNameBranch)a; AssertCustomNameBranch(ee, aa); @@ -372,16 +370,16 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntitySingleOwned)e; + var ee = (JsonEntitySingleOwned)e!; var aa = (JsonEntitySingleOwned)a; Assert.Equal(ee.Id, aa.Id); Assert.Equal(ee.Name, aa.Name); Assert.Equal(ee.OwnedCollection?.Count ?? 0, aa.OwnedCollection?.Count ?? 0); - for (var i = 0; i < ee.OwnedCollection.Count; i++) + for (var i = 0; i < ee.OwnedCollection!.Count; i++) { - AssertOwnedLeaf(ee.OwnedCollection[i], aa.OwnedCollection[i]); + AssertOwnedLeaf(ee.OwnedCollection[i], aa.OwnedCollection![i]); } } } @@ -392,7 +390,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityInheritanceBase)e; + var ee = (JsonEntityInheritanceBase)e!; var aa = (JsonEntityInheritanceBase)a; Assert.Equal(ee.Id, aa.Id); @@ -400,9 +398,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con AssertCosmosOwnedBranch(ee.ReferenceOnBase, aa.ReferenceOnBase); Assert.Equal(ee.CollectionOnBase?.Count ?? 0, aa.CollectionOnBase?.Count ?? 0); - for (var i = 0; i < ee.CollectionOnBase.Count; i++) + for (var i = 0; i < ee.CollectionOnBase!.Count; i++) { - AssertCosmosOwnedBranch(ee.CollectionOnBase[i], aa.CollectionOnBase[i]); + AssertCosmosOwnedBranch(ee.CollectionOnBase[i], aa.CollectionOnBase![i]); } } } @@ -413,7 +411,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityInheritanceDerived)e; + var ee = (JsonEntityInheritanceDerived)e!; var aa = (JsonEntityInheritanceDerived)a; Assert.Equal(ee.Id, aa.Id); @@ -424,15 +422,15 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con AssertCosmosOwnedBranch(ee.ReferenceOnDerived, aa.ReferenceOnDerived); Assert.Equal(ee.CollectionOnBase?.Count ?? 0, aa.CollectionOnBase?.Count ?? 0); - for (var i = 0; i < ee.CollectionOnBase.Count; i++) + for (var i = 0; i < ee.CollectionOnBase!.Count; i++) { - AssertCosmosOwnedBranch(ee.CollectionOnBase[i], aa.CollectionOnBase[i]); + AssertCosmosOwnedBranch(ee.CollectionOnBase[i], aa.CollectionOnBase![i]); } Assert.Equal(ee.CollectionOnDerived?.Count ?? 0, aa.CollectionOnDerived?.Count ?? 0); - for (var i = 0; i < ee.CollectionOnDerived.Count; i++) + for (var i = 0; i < ee.CollectionOnDerived!.Count; i++) { - AssertCosmosOwnedBranch(ee.CollectionOnDerived[i], aa.CollectionOnDerived[i]); + AssertCosmosOwnedBranch(ee.CollectionOnDerived[i], aa.CollectionOnDerived![i]); } } } @@ -443,17 +441,17 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityAllTypes)e; + var ee = (JsonEntityAllTypes)e!; var aa = (JsonEntityAllTypes)a; Assert.Equal(ee.Id, aa.Id); - AssertCosmosAllTypes(ee.Reference, aa.Reference); + AssertCosmosAllTypes(ee.Reference!, aa.Reference!); Assert.Equal(ee.Collection?.Count ?? 0, aa.Collection?.Count ?? 0); - for (var i = 0; i < ee.Collection.Count; i++) + for (var i = 0; i < ee.Collection!.Count; i++) { - AssertCosmosAllTypes(ee.Collection[i], aa.Collection[i]); + AssertCosmosAllTypes(ee.Collection[i], aa.Collection![i]); } } } @@ -464,7 +462,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonOwnedAllTypes)e; + var ee = (JsonOwnedAllTypes)e!; var aa = (JsonOwnedAllTypes)a; AssertCosmosAllTypes(ee, aa); @@ -477,12 +475,12 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonEntityConverters)e; + var ee = (JsonEntityConverters)e!; var aa = (JsonEntityConverters)a; Assert.Equal(ee.Id, aa.Id); - AssertCosmosConverters(ee.Reference, aa.Reference); + AssertCosmosConverters(ee.Reference!, aa.Reference!); } } }, @@ -492,7 +490,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con Assert.Equal(e == null, a == null); if (a != null) { - var ee = (JsonOwnedConverters)e; + var ee = (JsonOwnedConverters)e!; var aa = (JsonOwnedConverters)a; AssertCosmosConverters(ee, aa); @@ -508,7 +506,7 @@ public static void AssertCosmosOwnedRoot(JsonOwnedRoot expected, JsonOwnedRoot a Assert.Equal(expected.Names, actual.Names); Assert.Equal(expected.Numbers, actual.Numbers); - AssertCosmosOwnedBranch(expected.OwnedReferenceBranch, actual.OwnedReferenceBranch); + AssertCosmosOwnedBranch(expected.OwnedReferenceBranch!, actual.OwnedReferenceBranch!); Assert.Equal(expected.OwnedCollectionBranch.Count, actual.OwnedCollectionBranch.Count); for (var i = 0; i < expected.OwnedCollectionBranch.Count; i++) { diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosTest.cs index d868de51efe..c922d40552e 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/JsonQueryCosmosTest.cs @@ -141,9 +141,9 @@ await AssertQuery( { x.Id, Root1 = x.OwnedReferenceRoot, - Leaf1 = x.OwnedReferenceRoot.OwnedReferenceBranch.OwnedReferenceLeaf, + Leaf1 = x.OwnedReferenceRoot!.OwnedReferenceBranch!.OwnedReferenceLeaf, Root2 = x.OwnedReferenceRoot, - Leaf2 = x.OwnedReferenceRoot.OwnedReferenceBranch.OwnedReferenceLeaf, + Leaf2 = x.OwnedReferenceRoot!.OwnedReferenceBranch!.OwnedReferenceLeaf, }).AsNoTrackingWithIdentityResolution(), assertOrder: true, elementAsserter: (e, a) => @@ -2287,8 +2287,6 @@ protected override void ConfigureWarnings(WarningsConfigurationBuilder builder) #region Non-shared test resources -#nullable disable - #region 21006 public override Task Project_root_with_missing_scalars(bool async) @@ -6367,8 +6365,6 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) #endregion -#nullable restore - #endregion private void AssertSql(params string[] expected) diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindAggregateOperatorsQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindAggregateOperatorsQueryCosmosTest.cs index ba0c490b8ad..c1682877b7d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindAggregateOperatorsQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindAggregateOperatorsQueryCosmosTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAggregateOperatorsQueryCosmosTest : NorthwindAggregateOperatorsQueryTestBase> { diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindDbFunctionsQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindDbFunctionsQueryCosmosTest.cs index 06a9f9b835b..1c0ef8d4859 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindDbFunctionsQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindDbFunctionsQueryCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindDbFunctionsQueryCosmosTest : NorthwindDbFunctionsQueryTestBase> { public NorthwindDbFunctionsQueryCosmosTest( diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindFunctionsQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindFunctionsQueryCosmosTest.cs index c5f823eb811..46281f80fe3 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindFunctionsQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindFunctionsQueryCosmosTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindFunctionsQueryCosmosTest : NorthwindFunctionsQueryTestBase> { public NorthwindFunctionsQueryCosmosTest( diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindKeylessEntitiesQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindKeylessEntitiesQueryCosmosTest.cs index 7cd64906e07..cae872a2f5f 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindKeylessEntitiesQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindKeylessEntitiesQueryCosmosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindKeylessEntitiesQueryCosmosTest : NorthwindKeylessEntitiesQueryTestBase< NorthwindQueryCosmosFixture> { diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindMiscellaneousQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindMiscellaneousQueryCosmosTest.cs index 03c43e4efb6..44a1d3d2d31 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindMiscellaneousQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindMiscellaneousQueryCosmosTest.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindMiscellaneousQueryCosmosTest : NorthwindMiscellaneousQueryTestBase< NorthwindQueryCosmosFixture> { @@ -2203,7 +2201,7 @@ public override Task Select_expression_date_add_milliseconds_below_the_range(boo await AssertQuery( a, ss => ss.Set().Where(o => o.OrderDate != null) - .Select(o => new Order { OrderDate = o.OrderDate.Value.AddMilliseconds(-1000000000000) }), + .Select(o => new Order { OrderDate = o.OrderDate!.Value.AddMilliseconds(-1000000000000) }), elementSorter: e => e.OrderDate); AssertSql( @@ -4112,8 +4110,8 @@ public override async Task Non_nullable_property_through_optional_navigation(boo { await AssertQuery( async, - ss => ss.Set().Select(e => new { e.Region.Length }), - ss => ss.Set().Where(e => e.Region != null).Select(e => new { e.Region.Length })); + ss => ss.Set().Select(e => new { e.Region!.Length }), + ss => ss.Set().Where(e => e.Region != null).Select(e => new { e.Region!.Length })); AssertSql( """ @@ -4370,7 +4368,7 @@ public override Task Convert_to_nullable_on_nullable_value_is_ignored(bool async { await AssertQuery( a, - ss => ss.Set().Select(o => new Order { OrderDate = o.OrderDate.Value }), + ss => ss.Set().Select(o => new Order { OrderDate = o.OrderDate!.Value }), elementSorter: e => e.OrderDate); AssertSql( diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindQueryCosmosFixture.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindQueryCosmosFixture.cs index dae02c001a8..9d4babc4998 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindQueryCosmosFixture.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindQueryCosmosFixture.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQueryCosmosFixture : NorthwindQueryFixtureBase where TModelCustomizer : ITestModelCustomizer, new() { diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindSelectQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindSelectQueryCosmosTest.cs index c0dba3f1523..bafe659e6db 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindSelectQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindSelectQueryCosmosTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSelectQueryCosmosTest : NorthwindSelectQueryTestBase> { public NorthwindSelectQueryCosmosTest( diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindWhereQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindWhereQueryCosmosTest.cs index f3b437d7029..7584ac63f0d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindWhereQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/NorthwindWhereQueryCosmosTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindWhereQueryCosmosTest : NorthwindWhereQueryTestBase> { public NorthwindWhereQueryCosmosTest( @@ -64,7 +62,7 @@ FROM root c """); }); - return null; + return null!; } public override Task Where_indexer_closure(bool async) diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/OwnedQueryCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/OwnedQueryCosmosTest.cs index 497c6170a83..f644d58a69d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/OwnedQueryCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/OwnedQueryCosmosTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OwnedQueryCosmosTest : OwnedQueryTestBase { public OwnedQueryCosmosTest(OwnedQueryCosmosFixture fixture, ITestOutputHelper testOutputHelper) @@ -1050,7 +1048,7 @@ await CosmosTestHelpers.Instance.NoSyncTest( { await Assert.ThrowsAsync(() => AssertQuery( async, - ss => ss.Set().Select(e => new { e.Throned.Value }))); + ss => ss.Set().Select(e => new { e.Throned!.Value }))); AssertSql( """ @@ -1078,10 +1076,10 @@ public override async Task Owned_entity_without_owner_does_not_throw_for_identit Assert.Equal(4, result.Count); Assert.Collection( result.OrderBy(e => e.Id), - element => AssertProjectedPersonAddress(1, element.Id, element.PersonAddress), - element => AssertProjectedPersonAddress(2, element.Id, element.PersonAddress), - element => AssertProjectedPersonAddress(3, element.Id, element.PersonAddress), - element => AssertProjectedPersonAddress(4, element.Id, element.PersonAddress)); + element => AssertProjectedPersonAddress(1, element.Id, element.PersonAddress!), + element => AssertProjectedPersonAddress(2, element.Id, element.PersonAddress!), + element => AssertProjectedPersonAddress(3, element.Id, element.PersonAddress!), + element => AssertProjectedPersonAddress(4, element.Id, element.PersonAddress!)); Assert.Empty(context.ChangeTracker.Entries()); AssertSql( @@ -1097,7 +1095,7 @@ private static void AssertProjectedPersonAddress(int expectedId, int id, OwnedAd { Assert.Equal(expectedId, id); Assert.Equal("Land", personAddress.PlaceType); - Assert.Equal("USA", personAddress.Country.Name); + Assert.Equal("USA", personAddress.Country!.Name); } public override Task Simple_query_entity_with_owned_collection(bool async) diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTest.cs index 26c7fc1a9fe..5806cc536e0 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryLoggingCosmosTest(QueryLoggingCosmosTest.NorthwindQueryCosmosFixtureInsensitive fixture) : QueryLoggingCosmosTestBase(fixture), IClassFixture> diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestBase.cs b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestBase.cs index 3e2a22f9d99..da0e00188d7 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestBase.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestBase.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public abstract class QueryLoggingCosmosTestBase { protected QueryLoggingCosmosTestBase(NorthwindQueryCosmosFixture fixture) diff --git a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestSensitive.cs b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestSensitive.cs index e4ab578e139..f4e0fda720d 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestSensitive.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Query/QueryLoggingCosmosTestSensitive.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryLoggingCosmosTestSensitive(NorthwindQueryCosmosFixture fixture) : QueryLoggingCosmosTestBase(fixture), IClassFixture>; diff --git a/test/EFCore.Cosmos.FunctionalTests/QueryExpressionInterceptionWithDiagnosticsCosmosTest.cs b/test/EFCore.Cosmos.FunctionalTests/QueryExpressionInterceptionWithDiagnosticsCosmosTest.cs index 01c69c5c3e0..8c144bc6542 100644 --- a/test/EFCore.Cosmos.FunctionalTests/QueryExpressionInterceptionWithDiagnosticsCosmosTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/QueryExpressionInterceptionWithDiagnosticsCosmosTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class QueryExpressionInterceptionWithDiagnosticsCosmosTest( QueryExpressionInterceptionWithDiagnosticsCosmosTest.InterceptionCosmosFixture fixture) : QueryExpressionInterceptionTestBase(fixture), diff --git a/test/EFCore.Cosmos.FunctionalTests/Storage/CosmosDatabaseCreatorTest.cs b/test/EFCore.Cosmos.FunctionalTests/Storage/CosmosDatabaseCreatorTest.cs index 03339747df7..9d0ead7fc57 100644 --- a/test/EFCore.Cosmos.FunctionalTests/Storage/CosmosDatabaseCreatorTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/Storage/CosmosDatabaseCreatorTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Storage; -#nullable disable - [ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.DoesNotUseTokenCredential))] public class CosmosDatabaseCreatorTest { @@ -24,7 +22,7 @@ public async Task EnsureCreated_returns_true_when_database_does_not_exist() public async Task EnsureCreated_returns_true_when_database_exists_but_collections_do_not() { await using var testDatabase = CosmosTestStore.Create("EnsureCreatedTest"); - await testDatabase.InitializeAsync(testDatabase.ServiceProvider, () => new BaseContext(testDatabase)); + await testDatabase.InitializeAsync(testDatabase.ServiceProvider!, () => new BaseContext(testDatabase)); using var context = new BloggingContext(testDatabase); var creator = context.GetService(); @@ -38,7 +36,7 @@ public Task EnsureCreated_returns_false_when_database_and_collections_exist(bool { await using var testDatabase = CosmosTestStore.Create("EnsureCreatedReady"); await testDatabase.InitializeAsync( - testDatabase.ServiceProvider, testStore => new BloggingContext((CosmosTestStore)testStore)); + testDatabase.ServiceProvider!, testStore => new BloggingContext((CosmosTestStore)testStore)); using var context = new BloggingContext(testDatabase); var creator = context.GetService(); @@ -108,7 +106,8 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) } } - public DbSet Blogs { get; set; } + public DbSet Blogs + => Set(); } private class Blog diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestEnvironment.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestEnvironment.cs index 138c990797c..71e050be9cb 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestEnvironment.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestEnvironment.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - public static class CosmosTestEnvironment { private static readonly string _emulatorAuthToken = @@ -24,15 +22,15 @@ public static class CosmosTestEnvironment .Build() .GetSection("Test:Cosmos"); - private static CosmosDbContainer _container; + private static CosmosDbContainer? _container; private static bool _initialized; private static readonly SemaphoreSlim _initSemaphore = new(1, 1); public static string DefaultConnection { get; private set; } = string.IsNullOrEmpty(Config["DefaultConnection"]) ? "https://localhost:8081" - : Config["DefaultConnection"]; + : Config["DefaultConnection"]!; - internal static HttpMessageHandler HttpMessageHandler { get; private set; } + internal static HttpMessageHandler? HttpMessageHandler { get; private set; } public static async Task InitializeAsync() { @@ -93,7 +91,7 @@ public static async Task InitializeAsync() { try { - _container.DisposeAsync().AsTask().GetAwaiter().GetResult(); + container.DisposeAsync().AsTask().GetAwaiter().GetResult(); } catch { @@ -104,9 +102,9 @@ public static async Task InitializeAsync() DefaultConnection = new UriBuilder( Uri.UriSchemeHttp, - _container.Hostname, - _container.GetMappedPublicPort(CosmosDbBuilder.CosmosDbPort)).ToString(); - HttpMessageHandler = _container.HttpMessageHandler; + container.Hostname, + container.GetMappedPublicPort(CosmosDbBuilder.CosmosDbPort)).ToString(); + HttpMessageHandler = container.HttpMessageHandler; _initialized = true; } @@ -139,7 +137,7 @@ private static async Task TryProbeEmulatorAsync(string endpoint) public static string AuthToken { get; } = string.IsNullOrEmpty(Config["AuthToken"]) ? _emulatorAuthToken - : Config["AuthToken"]; + : Config["AuthToken"]!; public static string ConnectionString => $"AccountEndpoint={DefaultConnection};AccountKey={AuthToken}"; @@ -150,13 +148,13 @@ public static string ConnectionString public static TokenCredential TokenCredential { get; } = new AzureCliCredential( new AzureCliCredentialOptions { ProcessTimeout = TimeSpan.FromMinutes(5) }); - public static string SubscriptionId { get; } = Config["SubscriptionId"]; + public static string SubscriptionId { get; } = Config["SubscriptionId"]!; - public static string ResourceGroup { get; } = Config["ResourceGroup"]; + public static string ResourceGroup { get; } = Config["ResourceGroup"]!; public static AzureLocation AzureLocation { get; } = string.IsNullOrEmpty(Config["AzureLocation"]) ? AzureLocation.WestUS - : Enum.Parse(Config["AzureLocation"]); + : Enum.Parse(Config["AzureLocation"]!); public static bool IsEmulator => !UseTokenCredential && (AuthToken == _emulatorAuthToken); diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestStoreFactory.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestStoreFactory.cs index 220663cb082..91a4a49c8ca 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestStoreFactory.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CosmosTestStoreFactory.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - public class CosmosTestStoreFactory : ITestStoreFactory { public static CosmosTestStoreFactory Instance { get; } = new(); diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdGenerator.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdGenerator.cs index ce73f7cad6f..cf9df17fdb0 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdGenerator.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdGenerator.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - public class CustomPartitionKeyIdGenerator : ValueGenerator { public override bool GeneratesTemporaryValues @@ -20,7 +18,7 @@ protected override object NextValue(EntityEntry entry) var builder = new StringBuilder(); var entityType = entry.Metadata; - var primaryKey = entityType.FindPrimaryKey(); + var primaryKey = entityType.FindPrimaryKey()!; var discriminator = entityType.GetDiscriminatorValue(); if (discriminator != null && !primaryKey.Properties.Contains(entityType.FindDiscriminatorProperty())) @@ -49,7 +47,7 @@ protected override object NextValue(EntityEntry entry) // We don't allow the Id to be zero for our custom generator. if (value is 0) { - return default; + return default!; } AppendString(builder, value); @@ -62,7 +60,7 @@ protected override object NextValue(EntityEntry entry) return builder.ToString(); } - private static void AppendString(StringBuilder builder, object propertyValue) + private static void AppendString(StringBuilder builder, object? propertyValue) { switch (propertyValue) { @@ -72,13 +70,13 @@ private static void AppendString(StringBuilder builder, object propertyValue) case IEnumerable enumerable: foreach (var item in enumerable) { - builder.Append(item.ToString().Replace("-", "/-")); + builder.Append(item!.ToString()!.Replace("-", "/-")); builder.Append("|"); } return; default: - builder.Append(propertyValue == null ? "null" : propertyValue.ToString().Replace("-", "/-")); + builder.Append(propertyValue == null ? "null" : propertyValue.ToString()!.Replace("-", "/-")); return; } } diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdValueGeneratorFactory.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdValueGeneratorFactory.cs index ff978d75c57..be2461de025 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdValueGeneratorFactory.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/CustomPartitionKeyIdValueGeneratorFactory.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - internal class CustomPartitionKeyIdValueGeneratorFactory : ValueGeneratorFactory { public override ValueGenerator Create(IProperty property, ITypeBase typeBase) diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestCosmosExecutionStrategy.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestCosmosExecutionStrategy.cs index 04e7d05ada9..d6597da6e60 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestCosmosExecutionStrategy.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestCosmosExecutionStrategy.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - public class TestCosmosExecutionStrategy : CosmosExecutionStrategy { protected static new readonly int DefaultMaxRetryCount = 10; diff --git a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestSqlLoggerFactory.cs b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestSqlLoggerFactory.cs index adacc3f92f7..f0fc89115c6 100644 --- a/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestSqlLoggerFactory.cs +++ b/test/EFCore.Cosmos.FunctionalTests/TestUtilities/TestSqlLoggerFactory.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities; -#nullable disable - public class TestSqlLoggerFactory : ListLoggerFactory { private const string FileNewLine = @" @@ -285,15 +283,15 @@ protected override void UnsafeClear() protected override void UnsafeLog( LogLevel logLevel, EventId eventId, - string message, + string? message, TState state, - Exception exception) + Exception? exception) { if (eventId.Id == CosmosEventId.ExecutingSqlQuery) { if (message != null) { - var structure = (IReadOnlyList>)state; + var structure = (IReadOnlyList>)state!; var parameters = structure.Where(i => i.Key == "parameters").Select(i => (string)i.Value).First(); var commandText = structure.Where(i => i.Key == "commandText").Select(i => (string)i.Value).First(); @@ -312,7 +310,7 @@ protected override void UnsafeLog( { if (message != null) { - var structure = (IReadOnlyList>)state; + var structure = (IReadOnlyList>)state!; var partitionKey = structure.Where(i => i.Key == "partitionKey").Select(i => (string)i.Value).First(); var resourceId = structure.Where(i => i.Key == "resourceId").Select(i => (string)i.Value).First(); diff --git a/test/EFCore.Cosmos.Tests/Diagnostics/CosmosEventIdTest.cs b/test/EFCore.Cosmos.Tests/Diagnostics/CosmosEventIdTest.cs index bca80de609d..080e3c8003c 100644 --- a/test/EFCore.Cosmos.Tests/Diagnostics/CosmosEventIdTest.cs +++ b/test/EFCore.Cosmos.Tests/Diagnostics/CosmosEventIdTest.cs @@ -15,7 +15,7 @@ public void Every_eventId_has_a_logger_method_and_logs_when_level_enabled() { var model = new Model(); var entityType = model.AddEntityType(typeof(object), owned: false, ConfigurationSource.Convention)!; - var property = entityType.AddProperty("A", typeof(int), ConfigurationSource.Convention, ConfigurationSource.Convention); + var property = entityType.AddProperty("A", typeof(int), ConfigurationSource.Convention, ConfigurationSource.Convention)!; var fakeFactories = new Dictionary> { @@ -29,7 +29,7 @@ public void Every_eventId_has_a_logger_method_and_logs_when_level_enabled() { typeof(string), () => "Fake" }, { typeof(IReadOnlyList), - () => new List { new(null, CosmosCudOperation.Create, "fake") } + () => new List { new(null!, CosmosCudOperation.Create, "fake") } }, }; diff --git a/test/EFCore.Cosmos.Tests/EFCore.Cosmos.Tests.csproj b/test/EFCore.Cosmos.Tests/EFCore.Cosmos.Tests.csproj index 615620cdb47..0d97ec4f331 100644 --- a/test/EFCore.Cosmos.Tests/EFCore.Cosmos.Tests.csproj +++ b/test/EFCore.Cosmos.Tests/EFCore.Cosmos.Tests.csproj @@ -4,7 +4,6 @@ $(DefaultNetCoreTargetFramework) Microsoft.EntityFrameworkCore.Cosmos.Tests Microsoft.EntityFrameworkCore.Cosmos - disable true true diff --git a/test/EFCore.Cosmos.Tests/Extensions/CosmosBuilderExtensionsTest.cs b/test/EFCore.Cosmos.Tests/Extensions/CosmosBuilderExtensionsTest.cs index d31581533e0..952bb624588 100644 --- a/test/EFCore.Cosmos.Tests/Extensions/CosmosBuilderExtensionsTest.cs +++ b/test/EFCore.Cosmos.Tests/Extensions/CosmosBuilderExtensionsTest.cs @@ -150,7 +150,7 @@ public void Default_discriminator_can_be_removed() Assert.Equal("$type", entityType.FindDiscriminatorProperty()!.GetJsonPropertyName()); Assert.Equal(nameof(Customer), entityType.GetDiscriminatorValue()); - modelBuilder.Entity().HasBaseType((string)null); + modelBuilder.Entity().HasBaseType((string?)null); Assert.Null(entityType.FindDiscriminatorProperty()); } @@ -242,8 +242,8 @@ protected virtual ModelBuilder CreateConventionModelBuilder() private class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public short SomeShort { get; set; } - public string ETag { get; set; } + public string ETag { get; set; } = null!; } } diff --git a/test/EFCore.Cosmos.Tests/Extensions/CosmosDbContextOptionsExtensionsTests.cs b/test/EFCore.Cosmos.Tests/Extensions/CosmosDbContextOptionsExtensionsTests.cs index d2b9a031336..1e21f12162c 100644 --- a/test/EFCore.Cosmos.Tests/Extensions/CosmosDbContextOptionsExtensionsTests.cs +++ b/test/EFCore.Cosmos.Tests/Extensions/CosmosDbContextOptionsExtensionsTests.cs @@ -74,7 +74,7 @@ public void Can_create_options_with_valid_values() Test(o => o.WebProxy(webProxy), o => Assert.Same(webProxy, o.WebProxy)); Test( o => o.ExecutionStrategy(d => new CosmosExecutionStrategy(d)), - o => Assert.IsType(o.ExecutionStrategyFactory(null))); + o => Assert.IsType(o.ExecutionStrategyFactory!(null!))); Test(o => o.RequestTimeout(TimeSpan.FromMinutes(3)), o => Assert.Equal(TimeSpan.FromMinutes(3), o.RequestTimeout)); Test( o => o.OpenTcpConnectionTimeout(TimeSpan.FromMinutes(3)), @@ -101,7 +101,7 @@ public void Endpoint_and_key_overrides_connection_string() "authKeyOrResourceToken", "databaseName"); - var extension = options.Options.FindExtension(); + var extension = options.Options.FindExtension()!; Assert.Equal("serviceEndPoint", extension.AccountEndpoint); Assert.Equal("authKeyOrResourceToken", extension.AccountKey); @@ -121,7 +121,7 @@ public void Connection_string_overrides_endpoint_and_key() "authKeyOrResourceToken@serviceEndPoint", "databaseName"); - var extension = options.Options.FindExtension(); + var extension = options.Options.FindExtension()!; Assert.Null(extension.AccountEndpoint); Assert.Null(extension.AccountKey); @@ -143,7 +143,7 @@ public async Task Endpoint_and_token_overrides_connection_string() testDatabase.TokenCredential, "databaseName"); - var extension = options.Options.FindExtension(); + var extension = options.Options.FindExtension()!; Assert.Equal("serviceEndPoint", extension.AccountEndpoint); Assert.Null(extension.AccountKey); @@ -166,7 +166,7 @@ public async Task Connection_string_overrides_endpoint_and_token() "authKeyOrResourceToken@serviceEndPoint", "databaseName"); - var extension = options.Options.FindExtension(); + var extension = options.Options.FindExtension()!; Assert.Null(extension.AccountEndpoint); Assert.Null(extension.AccountKey); @@ -187,13 +187,13 @@ private void Test( cosmosOptionsAction); var extension = options - .Options.FindExtension(); + .Options.FindExtension()!; extensionAssert(extension); var clone = new DbContextOptionsBuilder().UseCosmos( cosmosOptionsAction) - .Options.FindExtension(); + .Options.FindExtension()!; Assert.Equal(extension.Info.GetServiceProviderHashCode(), clone.Info.GetServiceProviderHashCode()); Assert.True(extension.Info.ShouldUseSameServiceProvider(clone.Info)); diff --git a/test/EFCore.Cosmos.Tests/Extensions/CosmosMetadataExtensionsTest.cs b/test/EFCore.Cosmos.Tests/Extensions/CosmosMetadataExtensionsTest.cs index 3b1d1102267..d693548d987 100644 --- a/test/EFCore.Cosmos.Tests/Extensions/CosmosMetadataExtensionsTest.cs +++ b/test/EFCore.Cosmos.Tests/Extensions/CosmosMetadataExtensionsTest.cs @@ -139,7 +139,7 @@ private static ModelBuilder CreateModelBuilder() private class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public Guid AlternateId { get; set; } } } diff --git a/test/EFCore.Cosmos.Tests/Extensions/PartitionKeyBuilderExtensionsTest.cs b/test/EFCore.Cosmos.Tests/Extensions/PartitionKeyBuilderExtensionsTest.cs index 522058daf9e..ba28f63d27c 100644 --- a/test/EFCore.Cosmos.Tests/Extensions/PartitionKeyBuilderExtensionsTest.cs +++ b/test/EFCore.Cosmos.Tests/Extensions/PartitionKeyBuilderExtensionsTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable enable - using Microsoft.Azure.Cosmos; using Microsoft.EntityFrameworkCore.Cosmos.Internal; using Microsoft.EntityFrameworkCore.Internal; diff --git a/test/EFCore.Cosmos.Tests/Infrastructure/CosmosModelValidatorTest.cs b/test/EFCore.Cosmos.Tests/Infrastructure/CosmosModelValidatorTest.cs index 9b447fedea4..d14bec207df 100644 --- a/test/EFCore.Cosmos.Tests/Infrastructure/CosmosModelValidatorTest.cs +++ b/test/EFCore.Cosmos.Tests/Infrastructure/CosmosModelValidatorTest.cs @@ -26,7 +26,7 @@ public virtual void Passes_on_valid_keyless_entity_type() var model = Validate(modelBuilder); - Assert.Empty(model.FindEntityType(typeof(Customer)).GetKeys()); + Assert.Empty(model.FindEntityType(typeof(Customer))!.GetKeys()); } [Fact] @@ -735,7 +735,7 @@ public virtual void Detects_vector_property_with_unknown_data_type() private class NonVector { public Guid Id { get; set; } - public double[] Vector { get; set; } + public double[] Vector { get; set; } = null!; } [Fact] @@ -775,13 +775,13 @@ public virtual void Detects_complex_type_collection() private class EntityWithComplexTypeCollection { - public string Id { get; set; } - public List ComplexTypes { get; set; } + public string Id { get; set; } = null!; + public List ComplexTypes { get; set; } = null!; } private class ComplexTypeInCollection { - public string Value { get; set; } + public string Value { get; set; } = null!; } [Fact] @@ -805,8 +805,8 @@ public virtual void Passes_on_vector_index_on_complex_type_property() private class EntityWithVectorInComplexType { - public string Id { get; set; } - public EmbeddingDetails Details { get; set; } + public string Id { get; set; } = null!; + public EmbeddingDetails Details { get; set; } = null!; } private class EmbeddingDetails @@ -898,19 +898,19 @@ public virtual void Detects_full_text_index_on_non_enabled_property_in_complex_c private class EntityWithVectorsInComplexCollection { - public string Id { get; set; } - public List Items { get; set; } + public string Id { get; set; } = null!; + public List Items { get; set; } = null!; } private class EntityWithStringsInComplexCollection { - public string Id { get; set; } - public List Items { get; set; } + public string Id { get; set; } = null!; + public List Items { get; set; } = null!; } private class DescriptionItem { - public string Description { get; set; } + public string Description { get; set; } = null!; } [Fact] @@ -986,13 +986,13 @@ public virtual void Detects_cosmos_property_not_auto_loaded() protected class SpecialCustomer : Customer { - public string SpecialProperty { get; set; } + public string SpecialProperty { get; set; } = null!; } private class RememberMyName { - public string Id { get; set; } - public T ForgetMeNot { get; set; } + public string Id { get; set; } = null!; + public T ForgetMeNot { get; set; } = default!; } protected override TestHelpers TestHelpers diff --git a/test/EFCore.Cosmos.Tests/Metadata/Conventions/CosmosForeignKeyConventionTest.cs b/test/EFCore.Cosmos.Tests/Metadata/Conventions/CosmosForeignKeyConventionTest.cs index 1b440371a9d..3abe1f1376c 100644 --- a/test/EFCore.Cosmos.Tests/Metadata/Conventions/CosmosForeignKeyConventionTest.cs +++ b/test/EFCore.Cosmos.Tests/Metadata/Conventions/CosmosForeignKeyConventionTest.cs @@ -68,7 +68,7 @@ private class Dependent private class Owner { public int Id { get; set; } - public Owned Owned { get; set; } + public Owned Owned { get; set; } = null!; } private class Owned diff --git a/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosClientWrapperTest.cs b/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosClientWrapperTest.cs index d453a416348..9f3d46b4ca2 100644 --- a/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosClientWrapperTest.cs +++ b/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosClientWrapperTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable enable - using System.Net; using Microsoft.Azure.Cosmos; diff --git a/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosTypeMappingSourceTest.cs b/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosTypeMappingSourceTest.cs index bb1f0a13499..cee3a0bae16 100644 --- a/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosTypeMappingSourceTest.cs +++ b/test/EFCore.Cosmos.Tests/Storage/Internal/CosmosTypeMappingSourceTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable enable - using Microsoft.EntityFrameworkCore.Storage.Json; namespace Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal; diff --git a/test/EFCore.Cosmos.Tests/Storage/Internal/SessionTokenStorageTest.cs b/test/EFCore.Cosmos.Tests/Storage/Internal/SessionTokenStorageTest.cs index dacb38ec319..e997cfa599b 100644 --- a/test/EFCore.Cosmos.Tests/Storage/Internal/SessionTokenStorageTest.cs +++ b/test/EFCore.Cosmos.Tests/Storage/Internal/SessionTokenStorageTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable enable - using Microsoft.EntityFrameworkCore.Cosmos.Infrastructure; using Microsoft.EntityFrameworkCore.Cosmos.Internal; diff --git a/test/EFCore.Cosmos.Tests/ValueGeneration/IdValueGeneratorTest.cs b/test/EFCore.Cosmos.Tests/ValueGeneration/IdValueGeneratorTest.cs index 00a9990cc48..17f26295792 100644 --- a/test/EFCore.Cosmos.Tests/ValueGeneration/IdValueGeneratorTest.cs +++ b/test/EFCore.Cosmos.Tests/ValueGeneration/IdValueGeneratorTest.cs @@ -41,7 +41,7 @@ public void Generated_ids_do_not_clash() string Create(TEntity entity) where TEntity : class, new() => (string)CosmosTestHelpers.Instance.CreateInternalEntry(model, EntityState.Added, entity) - [model.FindEntityType(typeof(TEntity)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(TEntity))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } [Fact] @@ -55,7 +55,7 @@ public void Illegal_id_characters_are_not_escaped_by_default() { var id = (string)CosmosTestHelpers.Instance.CreateInternalEntry( model, EntityState.Added, new Post { Id = c, OtherId = "1" }) - [model.FindEntityType(typeof(Post)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(Post))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; Assert.Contains(c, id); Assert.DoesNotContain("^", id); @@ -81,7 +81,7 @@ public void Ids_with_former_escape_sequences_do_not_collide() string Create(string value) => (string)CosmosTestHelpers.Instance.CreateInternalEntry( model, EntityState.Added, new Post { Id = value, OtherId = "1" }) - [model.FindEntityType(typeof(Post)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(Post))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } [Fact] @@ -105,7 +105,7 @@ public void Generated_ids_for_complex_type_key_do_not_clash() string Create(ComplexKeyEntity entity) => (string)CosmosTestHelpers.Instance.CreateInternalEntry(model, EntityState.Added, entity) - [model.FindEntityType(typeof(ComplexKeyEntity)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(ComplexKeyEntity))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } [Fact] @@ -130,7 +130,7 @@ public void Generated_ids_for_complex_type_key_with_discriminator_do_not_clash() string Create(ComplexKeyEntity entity) => (string)CosmosTestHelpers.Instance.CreateInternalEntry(model, EntityState.Added, entity) - [model.FindEntityType(typeof(ComplexKeyEntity)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(ComplexKeyEntity))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } [Fact] @@ -155,7 +155,7 @@ public void Generated_ids_for_record_struct_complex_type_key_with_discriminator_ string Create(Customer entity) => (string)CosmosTestHelpers.Instance.CreateInternalEntry(model, EntityState.Added, entity) - [model.FindEntityType(typeof(Customer)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(Customer))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } [Fact] @@ -180,7 +180,7 @@ public void Generated_ids_for_nested_complex_type_key_with_discriminator_do_not_ string Create(Order entity) => (string)CosmosTestHelpers.Instance.CreateInternalEntry(model, EntityState.Added, entity) - [model.FindEntityType(typeof(Order)).FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)]; + [model.FindEntityType(typeof(Order))!.FindProperty(CosmosJsonIdConvention.DefaultIdPropertyName)!]!; } private class ComplexKeyEntity @@ -198,18 +198,18 @@ private struct ComplexKey private class Customer { public CustomerId Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } private class Order { - public OrderKey Key { get; set; } - public string Description { get; set; } + public OrderKey Key { get; set; } = null!; + public string Description { get; set; } = null!; } private class OrderKey { - public InnerKey Inner { get; set; } + public InnerKey Inner { get; set; } = null!; } private class InnerKey @@ -225,13 +225,13 @@ private class Blog private class Post { - public string Id { get; set; } - public string OtherId { get; set; } + public string Id { get; set; } = null!; + public string OtherId { get; set; } = null!; } private class IntClassEntity { - public IntClass Id { get; set; } + public IntClass Id { get; set; } = null!; } private class IntClass(int value) @@ -242,7 +242,7 @@ public static readonly ValueConverter Converter private bool Equals(IntClass other) => other != null && Value == other.Value; - public override bool Equals(object obj) + public override bool Equals(object? obj) => obj == this || (obj?.GetType() == GetType() && Equals((IntClass)obj)); diff --git a/test/EFCore.CrossStore.FunctionalTests/ConfigurationPatternsTest.cs b/test/EFCore.CrossStore.FunctionalTests/ConfigurationPatternsTest.cs index aad87e50211..afac984adaa 100644 --- a/test/EFCore.CrossStore.FunctionalTests/ConfigurationPatternsTest.cs +++ b/test/EFCore.CrossStore.FunctionalTests/ConfigurationPatternsTest.cs @@ -147,10 +147,10 @@ public void Can_select_appropriate_provider_when_multiple_registered_with_defaul private class Customer { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public string CustomerID { get; set; } + public string CustomerID { get; set; } = null!; - public string CompanyName { get; set; } - public string Fax { get; set; } + public string CompanyName { get; set; } = null!; + public string Fax { get; set; } = null!; } private class MultipleProvidersContext : CrossStoreContext @@ -178,7 +178,7 @@ private class SomeService(MultipleProvidersContext context) } private CrossStoreFixture Fixture { get; } = fixture; - private TestStore ExistingTestStore { get; set; } + private TestStore ExistingTestStore { get; set; } = null!; private static readonly string StoreName = "CrossStoreConfigurationPatternsTest"; private Task SeedAsync(CrossStoreContext context) @@ -232,7 +232,7 @@ private async Task NestedContextTest(Func createBlogContext, Func _serviceProvider = serviceProvider; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -265,12 +265,12 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) private class Blog { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } private class ExternalProviderContext : CrossStoreContext { - private readonly IServiceProvider _serviceProvider; + private readonly IServiceProvider? _serviceProvider; public ExternalProviderContext() { diff --git a/test/EFCore.CrossStore.FunctionalTests/CrossStoreFixture.cs b/test/EFCore.CrossStore.FunctionalTests/CrossStoreFixture.cs index 86c5de7bb3e..55d3c00ce9a 100644 --- a/test/EFCore.CrossStore.FunctionalTests/CrossStoreFixture.cs +++ b/test/EFCore.CrossStore.FunctionalTests/CrossStoreFixture.cs @@ -18,7 +18,7 @@ public CrossStoreContext CreateContext(TestStore testStore) public Task CreateTestStoreAsync( ITestStoreFactory testStoreFactory, string storeName, - Func seed = null) + Func? seed = null) => testStoreFactory.GetOrCreate(storeName) .InitializeAsync( AddServices(testStoreFactory.AddProviderServices(new ServiceCollection())).BuildServiceProvider(validateScopes: true), diff --git a/test/EFCore.CrossStore.FunctionalTests/DiscriminatorTest.cs b/test/EFCore.CrossStore.FunctionalTests/DiscriminatorTest.cs index bb4c7a6c3ec..65dcbfac7fc 100644 --- a/test/EFCore.CrossStore.FunctionalTests/DiscriminatorTest.cs +++ b/test/EFCore.CrossStore.FunctionalTests/DiscriminatorTest.cs @@ -58,12 +58,12 @@ private abstract class BaseProduct private class SubProduct : BaseProduct { - public string SomeName { get; set; } + public string SomeName { get; set; } = null!; } private class SubProduct2 : BaseProduct { - public string SomeName2 { get; set; } + public string SomeName2 { get; set; } = null!; } private abstract class BaseIntProduct @@ -73,25 +73,25 @@ private abstract class BaseIntProduct private class SubIntProduct : BaseIntProduct { - public string SomeName { get; set; } + public string SomeName { get; set; } = null!; } private class SubIntProduct2 : BaseIntProduct { - public string SomeName2 { get; set; } + public string SomeName2 { get; set; } = null!; } private class Context4285 : DbContext { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Products { get; set; } - public DbSet SubProducts { get; set; } - public DbSet SubProducts2 { get; set; } + public DbSet Products { get; set; } = null!; + public DbSet SubProducts { get; set; } = null!; + public DbSet SubProducts2 { get; set; } = null!; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet IntProducts { get; set; } - public DbSet SubIntProducts { get; set; } - public DbSet SubIntProducts2 { get; set; } + public DbSet IntProducts { get; set; } = null!; + public DbSet SubIntProducts { get; set; } = null!; + public DbSet SubIntProducts2 { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder diff --git a/test/EFCore.CrossStore.FunctionalTests/EFCore.CrossStore.FunctionalTests.csproj b/test/EFCore.CrossStore.FunctionalTests/EFCore.CrossStore.FunctionalTests.csproj index 660bba7f0a1..d13d429fbf2 100644 --- a/test/EFCore.CrossStore.FunctionalTests/EFCore.CrossStore.FunctionalTests.csproj +++ b/test/EFCore.CrossStore.FunctionalTests/EFCore.CrossStore.FunctionalTests.csproj @@ -4,7 +4,6 @@ $(DefaultNetCoreTargetFramework) Microsoft.EntityFrameworkCore.CrossStore.FunctionalTests Microsoft.EntityFrameworkCore - disable true diff --git a/test/EFCore.CrossStore.FunctionalTests/EndToEndTest.cs b/test/EFCore.CrossStore.FunctionalTests/EndToEndTest.cs index 9d98f563b1a..28471d35c99 100644 --- a/test/EFCore.CrossStore.FunctionalTests/EndToEndTest.cs +++ b/test/EFCore.CrossStore.FunctionalTests/EndToEndTest.cs @@ -10,7 +10,7 @@ public abstract class EndToEndTest(CrossStoreFixture fixture) : IAsyncLifetime { protected CrossStoreFixture Fixture { get; } = fixture; protected abstract ITestStoreFactory TestStoreFactory { get; } - protected TestStore TestStore { get; private set; } + protected TestStore TestStore { get; private set; } = null!; [Fact] public virtual void Can_save_changes_and_query() diff --git a/test/EFCore.CrossStore.FunctionalTests/ProviderSpecificServicesTest.cs b/test/EFCore.CrossStore.FunctionalTests/ProviderSpecificServicesTest.cs index 8dbdee2338b..88b0bc377d1 100644 --- a/test/EFCore.CrossStore.FunctionalTests/ProviderSpecificServicesTest.cs +++ b/test/EFCore.CrossStore.FunctionalTests/ProviderSpecificServicesTest.cs @@ -34,7 +34,7 @@ public void Throws_with_add_when_non_relational_provider_in_use() using var serviceScope = appServiceProvider .GetRequiredService() .CreateScope(); - var context = serviceScope.ServiceProvider.GetService(); + var context = serviceScope.ServiceProvider.GetRequiredService(); Assert.Equal( RelationalStrings.RelationalNotInUse, diff --git a/test/EFCore.CrossStore.FunctionalTests/QueryTest.cs b/test/EFCore.CrossStore.FunctionalTests/QueryTest.cs index 89774575b0b..cf9a1dcaf8c 100644 --- a/test/EFCore.CrossStore.FunctionalTests/QueryTest.cs +++ b/test/EFCore.CrossStore.FunctionalTests/QueryTest.cs @@ -229,20 +229,20 @@ public async Task TemporalFromTo_throws_for_Sqlite(bool async) private class Blog { public int Id { get; set; } - public List Posts { get; set; } + public List Posts { get; set; } = null!; } private class Post { public int Id { get; set; } - public Blog Blog { get; set; } + public Blog Blog { get; set; } = null!; } private abstract class QueryContextBase : DbContext { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Blogs { get; set; } - public DbSet Posts { get; set; } + public DbSet Blogs { get; set; } = null!; + public DbSet Posts { get; set; } = null!; protected override void OnModelCreating(ModelBuilder builder) { diff --git a/test/EFCore.CrossStore.FunctionalTests/TestModels/CrossStoreContext.cs b/test/EFCore.CrossStore.FunctionalTests/TestModels/CrossStoreContext.cs index 8dd6f8cac56..6236e07e060 100644 --- a/test/EFCore.CrossStore.FunctionalTests/TestModels/CrossStoreContext.cs +++ b/test/EFCore.CrossStore.FunctionalTests/TestModels/CrossStoreContext.cs @@ -14,7 +14,7 @@ public CrossStoreContext(DbContextOptions options) { } - public virtual DbSet SimpleEntities { get; set; } + public virtual DbSet SimpleEntities { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(eb => diff --git a/test/EFCore.CrossStore.FunctionalTests/TestModels/SimpleEntity.cs b/test/EFCore.CrossStore.FunctionalTests/TestModels/SimpleEntity.cs index 4524470d8e3..6dbdab59498 100644 --- a/test/EFCore.CrossStore.FunctionalTests/TestModels/SimpleEntity.cs +++ b/test/EFCore.CrossStore.FunctionalTests/TestModels/SimpleEntity.cs @@ -9,5 +9,5 @@ public class SimpleEntity public virtual int Id { get; set; } - public virtual string StringProperty { get; set; } + public virtual string StringProperty { get; set; } = null!; } diff --git a/test/EFCore.OData.FunctionalTests/EFCore.OData.FunctionalTests.csproj b/test/EFCore.OData.FunctionalTests/EFCore.OData.FunctionalTests.csproj index bc79162c40f..3f1b9ab609e 100644 --- a/test/EFCore.OData.FunctionalTests/EFCore.OData.FunctionalTests.csproj +++ b/test/EFCore.OData.FunctionalTests/EFCore.OData.FunctionalTests.csproj @@ -4,7 +4,6 @@ $(DefaultNetCoreTargetFramework) Microsoft.EntityFrameworkCore.OData.FunctionalTests Microsoft.EntityFrameworkCore - disable True true diff --git a/test/EFCore.OData.FunctionalTests/Extensions/HttpContentExtensions.cs b/test/EFCore.OData.FunctionalTests/Extensions/HttpContentExtensions.cs index 5ccb9c3f3df..28dc1391f2a 100644 --- a/test/EFCore.OData.FunctionalTests/Extensions/HttpContentExtensions.cs +++ b/test/EFCore.OData.FunctionalTests/Extensions/HttpContentExtensions.cs @@ -11,6 +11,6 @@ public static async Task ReadAsObject(this HttpContent content) { var json = await content.ReadAsStringAsync(); - return JsonConvert.DeserializeObject(json); + return JsonConvert.DeserializeObject(json)!; } } diff --git a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataContext.cs b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataContext.cs index 2eb56a3ed30..cf45478d755 100644 --- a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataContext.cs +++ b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataContext.cs @@ -7,10 +7,10 @@ namespace Microsoft.EntityFrameworkCore.Query; public class ComplexNavigationsODataContext(DbContextOptions options) : PoolableDbContext(options) { - public DbSet LevelOne { get; set; } - public DbSet LevelTwo { get; set; } - public DbSet LevelThree { get; set; } - public DbSet LevelFour { get; set; } + public DbSet LevelOne { get; set; } = null!; + public DbSet LevelTwo { get; set; } = null!; + public DbSet LevelThree { get; set; } = null!; + public DbSet LevelFour { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTestFixture.cs b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTestFixture.cs index 1b08dcf2365..6d88a548a4c 100644 --- a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTestFixture.cs +++ b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTestFixture.cs @@ -10,7 +10,7 @@ namespace Microsoft.EntityFrameworkCore.Query; public class ComplexNavigationsODataQueryTestFixture : ComplexNavigationsQuerySqlServerFixture, IODataQueryTestFixture { - private IHost _selfHostServer; + private IHost? _selfHostServer; protected override string StoreName => "ODataComplexNavigations"; diff --git a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTests.cs b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTests.cs index 8be2cab8943..b48141452be 100644 --- a/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTests.cs +++ b/test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTests.cs @@ -20,8 +20,8 @@ public async Task Query_level_ones() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#LevelOne", result["@odata.context"].ToString()); - var levelOnes = result["value"] as JArray; + Assert.Contains("$metadata#LevelOne", result["@odata.context"]!.ToString()); + var levelOnes = Assert.IsType(result["value"]); Assert.Equal(13, levelOnes.Count); } @@ -36,8 +36,8 @@ public async Task Query_level_twos() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#LevelTwo", result["@odata.context"].ToString()); - var levelTwos = result["value"] as JArray; + Assert.Contains("$metadata#LevelTwo", result["@odata.context"]!.ToString()); + var levelTwos = Assert.IsType(result["value"]); Assert.Equal(11, levelTwos.Count); } @@ -52,8 +52,8 @@ public async Task Query_level_threes() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#LevelThree", result["@odata.context"].ToString()); - var levelThrees = result["value"] as JArray; + Assert.Contains("$metadata#LevelThree", result["@odata.context"]!.ToString()); + var levelThrees = Assert.IsType(result["value"]); Assert.Equal(10, levelThrees.Count); } @@ -68,8 +68,8 @@ public async Task Query_level_four() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#LevelFour", result["@odata.context"].ToString()); - var levelFours = result["value"] as JArray; + Assert.Contains("$metadata#LevelFour", result["@odata.context"]!.ToString()); + var levelFours = Assert.IsType(result["value"]); Assert.Equal(10, levelFours.Count); } @@ -85,9 +85,11 @@ public async Task Query_count_expand_with_filter_contains() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#LevelOne(OneToOne_Required_FK1())", result["@odata.context"].ToString()); + Assert.Contains( + "$metadata#LevelOne(OneToOne_Required_FK1())", + result["@odata.context"]!.ToString()); Assert.Equal(1, result["@odata.count"]); - var projection = result["value"] as JArray; + var projection = Assert.IsType(result["value"]); Assert.Single(projection); } } diff --git a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataContext.cs b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataContext.cs index 2b486e4e070..b5ed9a002cc 100644 --- a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataContext.cs +++ b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataContext.cs @@ -10,16 +10,16 @@ namespace Microsoft.EntityFrameworkCore.Query; public class GearsOfWarODataContext(DbContextOptions options) : PoolableDbContext(options) { - public DbSet Gears { get; set; } - public DbSet Squads { get; set; } - public DbSet Tags { get; set; } - public DbSet Weapons { get; set; } - public DbSet Cities { get; set; } - public DbSet Missions { get; set; } - public DbSet SquadMissions { get; set; } - public DbSet Factions { get; set; } - public DbSet LocustLeaders { get; set; } - public DbSet LocustHighCommands { get; set; } + public DbSet Gears { get; set; } = null!; + public DbSet Squads { get; set; } = null!; + public DbSet Tags { get; set; } = null!; + public DbSet Weapons { get; set; } = null!; + public DbSet Cities { get; set; } = null!; + public DbSet Missions { get; set; } = null!; + public DbSet SquadMissions { get; set; } = null!; + public DbSet Factions { get; set; } = null!; + public DbSet LocustLeaders { get; set; } = null!; + public DbSet LocustHighCommands { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTestFixture.cs b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTestFixture.cs index f3913204fbe..5fc89fbe3ae 100644 --- a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTestFixture.cs +++ b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTestFixture.cs @@ -10,7 +10,7 @@ namespace Microsoft.EntityFrameworkCore.Query; public class GearsOfWarODataQueryTestFixture : GearsOfWarQuerySqlServerFixture, IODataQueryTestFixture { - private IHost _selfHostServer; + private IHost? _selfHostServer; protected override string StoreName => "ODataGearsOfWarQueryTest"; diff --git a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTests.cs b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTests.cs index a48c5c8063c..8c2e483c70e 100644 --- a/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTests.cs +++ b/test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTests.cs @@ -20,8 +20,8 @@ public async Task Basic_query_gears() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Gears", result["@odata.context"].ToString()); - var gears = result["value"] as JArray; + Assert.Contains("$metadata#Gears", result["@odata.context"]!.ToString()); + var gears = Assert.IsType(result["value"]); Assert.Equal(5, gears.Count); } @@ -37,8 +37,9 @@ public async Task Basic_query_inheritance() var result = await response.Content.ReadAsObject(); Assert.Contains( - "$metadata#Gears/Microsoft.EntityFrameworkCore.TestModels.GearsOfWarModel.Officer", result["@odata.context"].ToString()); - var gears = result["value"] as JArray; + "$metadata#Gears/Microsoft.EntityFrameworkCore.TestModels.GearsOfWarModel.Officer", + result["@odata.context"]!.ToString()); + var gears = Assert.IsType(result["value"]); Assert.Equal(2, gears.Count); } @@ -56,8 +57,8 @@ public async Task Basic_query_single_element_from_set_composite_key() Assert.Contains( "$metadata#Gears/Microsoft.EntityFrameworkCore.TestModels.GearsOfWarModel.Officer/$entity", - result["@odata.context"].ToString()); - Assert.Equal("Marcus", result["Nickname"].ToString()); + result["@odata.context"]!.ToString()); + Assert.Equal("Marcus", result["Nickname"]!.ToString()); } [Fact] @@ -70,8 +71,8 @@ public async Task Complex_query_with_any_on_collection_navigation() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Gears", result["@odata.context"].ToString()); - var officers = result["value"] as JArray; + Assert.Contains("$metadata#Gears", result["@odata.context"]!.ToString()); + var officers = Assert.IsType(result["value"]); Assert.Equal(3, officers.Count); } @@ -86,8 +87,10 @@ public async Task Query_with_expand_and_key_projection() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Gears(SquadId,Tag(Id))", result["@odata.context"].ToString()); - var projections = result["value"] as JArray; + Assert.Contains( + "$metadata#Gears(SquadId,Tag(Id))", + result["@odata.context"]!.ToString()); + var projections = Assert.IsType(result["value"]); Assert.Equal(5, projections.Count); } diff --git a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataContext.cs b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataContext.cs index a92b3de656b..4749a11c382 100644 --- a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataContext.cs +++ b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataContext.cs @@ -10,11 +10,11 @@ namespace Microsoft.EntityFrameworkCore.Query; public class NorthwindODataContext(DbContextOptions options) : PoolableDbContext(options) { - public virtual DbSet Customers { get; set; } - public virtual DbSet Employees { get; set; } - public virtual DbSet Orders { get; set; } - public virtual DbSet OrderDetails { get; set; } - public virtual DbSet Products { get; set; } + public virtual DbSet Customers { get; set; } = null!; + public virtual DbSet Employees { get; set; } = null!; + public virtual DbSet Orders { get; set; } = null!; + public virtual DbSet OrderDetails { get; set; } = null!; + public virtual DbSet Products { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTestFixture.cs b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTestFixture.cs index a5a879539ba..886cceb199a 100644 --- a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTestFixture.cs +++ b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTestFixture.cs @@ -13,7 +13,7 @@ namespace Microsoft.EntityFrameworkCore.Query; public class NorthwindODataQueryTestFixture : NorthwindQuerySqlServerFixture, IODataQueryTestFixture { - private IHost _selfHostServer; + private IHost? _selfHostServer; protected override string StoreName => "ODataNorthwind"; diff --git a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTests.cs b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTests.cs index b6c5a80f6cb..651ebdaed1a 100644 --- a/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTests.cs +++ b/test/EFCore.OData.FunctionalTests/Query/NorthwindODataQueryTests.cs @@ -20,8 +20,8 @@ public async Task Basic_query_customers() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Customers", result["@odata.context"].ToString()); - var customers = result["value"] as JArray; + Assert.Contains("$metadata#Customers", result["@odata.context"]!.ToString()); + var customers = Assert.IsType(result["value"]); Assert.Equal(91, customers.Count); } @@ -36,8 +36,8 @@ public async Task Basic_query_select_single_customer() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Customers/$entity", result["@odata.context"].ToString()); - Assert.Equal("ALFKI", result["CustomerID"].ToString()); + Assert.Contains("$metadata#Customers/$entity", result["@odata.context"]!.ToString()); + Assert.Equal("ALFKI", result["CustomerID"]!.ToString()); } [Fact] @@ -50,12 +50,12 @@ public async Task Query_for_alfki_expand_orders() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Customers", result["@odata.context"].ToString()); - var customers = result["value"] as JArray; + Assert.Contains("$metadata#Customers", result["@odata.context"]!.ToString()); + var customers = Assert.IsType(result["value"]); Assert.Single(customers); Assert.Equal("ALFKI", customers[0]["CustomerID"]); - var orders = customers[0]["Orders"] as JArray; + var orders = Assert.IsType(customers[0]["Orders"]); Assert.Equal(6, orders.Count); } @@ -69,8 +69,8 @@ public async Task Basic_query_orders() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Orders", result["@odata.context"].ToString()); - var orders = result["value"] as JArray; + Assert.Contains("$metadata#Orders", result["@odata.context"]!.ToString()); + var orders = Assert.IsType(result["value"]); Assert.Equal(830, orders.Count); } @@ -85,8 +85,8 @@ public async Task Query_orders_select_single_property() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Orders(OrderDate)", result["@odata.context"].ToString()); - var orderDates = result["value"] as JArray; + Assert.Contains("$metadata#Orders(OrderDate)", result["@odata.context"]!.ToString()); + var orderDates = Assert.IsType(result["value"]); Assert.Equal(830, orderDates.Count); } @@ -101,7 +101,7 @@ public async Task Basic_query_order_details() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Order%20Details", result["@odata.context"].ToString()); + Assert.Contains("$metadata#Order%20Details", result["@odata.context"]!.ToString()); } [Fact] @@ -114,6 +114,6 @@ public async Task Basic_query_order_details_single_element_composite_key() Assert.Equal(HttpStatusCode.OK, response.StatusCode); var result = await response.Content.ReadAsObject(); - Assert.Contains("$metadata#Order%20Details", result["@odata.context"].ToString()); + Assert.Contains("$metadata#Order%20Details", result["@odata.context"]!.ToString()); } } diff --git a/test/EFCore.OData.FunctionalTests/Query/ODataQueryTestFixtureInitializer.cs b/test/EFCore.OData.FunctionalTests/Query/ODataQueryTestFixtureInitializer.cs index b5775d2cf48..20edbaec613 100644 --- a/test/EFCore.OData.FunctionalTests/Query/ODataQueryTestFixtureInitializer.cs +++ b/test/EFCore.OData.FunctionalTests/Query/ODataQueryTestFixtureInitializer.cs @@ -18,7 +18,7 @@ public class ODataQueryTestFixtureInitializer public static (string BaseAddress, IHttpClientFactory ClientFactory, IHost SelfHostServer) Initialize( string storeName, IEdmModel edmModel, - List customRoutingConventions = null) + List? customRoutingConventions = null) where TContext : DbContext { var selfHostServer = Host.CreateDefaultBuilder() @@ -65,7 +65,7 @@ public static (string BaseAddress, IHttpClientFactory ClientFactory, IHost SelfH selfHostServer.Start(); - var baseAddress = selfHostServer.Services.GetService().Features.Get().Addresses.First(); + var baseAddress = selfHostServer.Services.GetRequiredService().Features.Get()!.Addresses.First(); var clientFactory = selfHostServer.Services.GetRequiredService(); return (baseAddress, clientFactory, selfHostServer); diff --git a/test/EFCore.OData.FunctionalTests/TestControllers.cs b/test/EFCore.OData.FunctionalTests/TestControllers.cs index 56fb978d66d..65b28db5b14 100644 --- a/test/EFCore.OData.FunctionalTests/TestControllers.cs +++ b/test/EFCore.OData.FunctionalTests/TestControllers.cs @@ -72,7 +72,7 @@ public Task ExecuteResultAsync(ActionContext context) => _innerResult.ExecuteResultAsync(context); } -public class TestObjectResult(object innerResult) : ObjectResult(innerResult), ITestActionResult; +public class TestObjectResult(object? innerResult) : ObjectResult(innerResult), ITestActionResult; public class TestStatusCodeResult(StatusCodeResult innerResult) : StatusCodeResult(innerResult.StatusCode), ITestActionResult { diff --git a/test/EFCore.Specification.Tests/Query/QueryTestBase.cs b/test/EFCore.Specification.Tests/Query/QueryTestBase.cs index 80547d84b27..1d75ad61c46 100644 --- a/test/EFCore.Specification.Tests/Query/QueryTestBase.cs +++ b/test/EFCore.Specification.Tests/Query/QueryTestBase.cs @@ -43,7 +43,7 @@ protected virtual Expression RewriteExpectedQueryExpression(Expression expectedQ public Task AssertQuery( Func> query, - Func? elementSorter = null, + Func? elementSorter = null, Action? elementAsserter = null, bool assertOrder = false, bool assertEmpty = false, @@ -55,20 +55,21 @@ public Task AssertQuery( public Task AssertQuery( Func> actualQuery, Func> expectedQuery, - Func? elementSorter = null, + Func? elementSorter = null, Action? elementAsserter = null, bool assertOrder = false, bool assertEmpty = false, QueryTrackingBehavior? queryTrackingBehavior = null, [CallerMemberName] string testMethodName = "") => TestOutputWrapper(() => QueryAsserter.AssertQuery( - actualQuery, expectedQuery, elementSorter, elementAsserter, assertOrder, assertEmpty, async: true, queryTrackingBehavior, + actualQuery, expectedQuery, elementSorter!, elementAsserter, assertOrder, assertEmpty, + async: true, queryTrackingBehavior, testMethodName)); public Task AssertQuery( bool async, Func> query, - Func? elementSorter = null, + Func? elementSorter = null, Action? elementAsserter = null, bool assertOrder = false, bool assertEmpty = false, @@ -81,14 +82,15 @@ public Task AssertQuery( bool async, Func> actualQuery, Func> expectedQuery, - Func? elementSorter = null, + Func? elementSorter = null, Action? elementAsserter = null, bool assertOrder = false, bool assertEmpty = false, QueryTrackingBehavior? queryTrackingBehavior = null, [CallerMemberName] string testMethodName = "") => TestOutputWrapper(() => QueryAsserter.AssertQuery( - actualQuery, expectedQuery, elementSorter, elementAsserter, assertOrder, assertEmpty, async, queryTrackingBehavior, + actualQuery, expectedQuery, elementSorter!, elementAsserter, assertOrder, assertEmpty, async, + queryTrackingBehavior, testMethodName)); public Task AssertQueryScalar( diff --git a/test/EFCore.SqlServer.FunctionalTests/BatchingTest.cs b/test/EFCore.SqlServer.FunctionalTests/BatchingTest.cs index b28f4821751..c6750b4fb75 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BatchingTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BatchingTest.cs @@ -10,8 +10,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class BatchingTest : IClassFixture { public BatchingTest(BatchingTestFixture fixture) @@ -390,25 +388,25 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) } // ReSharper disable once UnusedMember.Local - public DbSet Blogs { get; set; } - public DbSet Owners { get; set; } + public DbSet Blogs { get; set; } = null!; + public DbSet Owners { get; set; } = null!; } private class Blog { public Guid Id { get; set; } public int Order { get; set; } - public string OwnerId { get; set; } - public Owner Owner { get; set; } - public byte[] Version { get; set; } + public string? OwnerId { get; set; } + public Owner? Owner { get; set; } + public byte[] Version { get; set; } = null!; public ICollection Posts { get; } = new HashSet(); } private class Owner { - public string Id { get; set; } - public string Name { get; set; } - public byte[] Version { get; set; } + public string Id { get; set; } = null!; + public string Name { get; set; } = null!; + public byte[] Version { get; set; } = null!; } private class Post @@ -416,7 +414,7 @@ private class Post public int PostId { get; set; } public int? Order { get; set; } public Guid BlogId { get; set; } - public Blog Blog { get; set; } + public Blog Blog { get; set; } = null!; public ICollection Comments { get; } = new HashSet(); } @@ -424,7 +422,7 @@ private class Comment { public int CommentId { get; set; } public int PostId { get; set; } - public Post Post { get; set; } + public Post Post { get; set; } = null!; } public class BatchingTestFixture : SharedStoreFixtureBase diff --git a/test/EFCore.SqlServer.FunctionalTests/BuiltInDataTypesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BuiltInDataTypesSqlServerTest.cs index b27f324315c..edd7c43b6fc 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BuiltInDataTypesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BuiltInDataTypesSqlServerTest.cs @@ -13,8 +13,6 @@ // ReSharper disable PossibleInvalidOperationException namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass( typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsNotAzureSql), nameof(SqlServerTestEnvironment.IsUtf8Supported))] public class BuiltInDataTypesSqlServerTest : BuiltInDataTypesTestBase @@ -706,7 +704,7 @@ public void String_indexOf_over_varchar_max() { var results = context.Set() .Where(e => e.Int == 81) - .Select(m => m.StringAsVarcharMax.IndexOf("a")) + .Select(m => m.StringAsVarcharMax!.IndexOf("a")) .ToList(); Assert.Equal(-1, Assert.Single(results)); @@ -1083,10 +1081,10 @@ public virtual void Can_query_using_any_mapped_data_type() Assert.Same(entity, context.Set().Single(e => e.Int == 999 && e.EnumAsVarcharMax == param60)); object param61 = "Bang!"; - Assert.Same(entity, context.Set().Single(e => e.Int == 999 && e.SqlVariantString.Equals(param61))); + Assert.Same(entity, context.Set().Single(e => e.Int == 999 && e.SqlVariantString!.Equals(param61))); object param62 = 887876; - Assert.Same(entity, context.Set().Single(e => e.Int == 999 && e.SqlVariantInt.Equals(param62))); + Assert.Same(entity, context.Set().Single(e => e.Int == 999 && e.SqlVariantInt!.Equals(param62))); } } @@ -1161,49 +1159,49 @@ public virtual void Can_query_using_any_mapped_data_types_with_nulls() TimeSpan? param13b = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.TimeSpanAsTime == param13b)); - string param19 = null; + string? param19 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.StringAsVarcharMax == param19)); - string param20 = null; + string? param20 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsCharVaryingMax == param20)); - string param21 = null; + string? param21 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsCharacterVaryingMax == param21)); - string param27 = null; + string? param27 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.StringAsNvarcharMax == param27)); - string param28 = null; + string? param28 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsNationalCharVaryingMax == param28)); - string param29 = null; + string? param29 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsNationalCharacterVaryingMax == param29)); - string param30 = null; + string? param30 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsText == param30)); - string param31 = null; + string? param31 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.StringAsNtext == param31)); - byte[] param35 = null; + byte[]? param35 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.BytesAsVarbinaryMax == param35)); - byte[] param36 = null; + byte[]? param36 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.BytesAsBinaryVaryingMax == param36)); - byte[] param37 = null; + byte[]? param37 = null; Assert.Same( entity, context.Set().Single(e => e.Int == 911 && e.BytesAsImage == param37)); @@ -1283,9 +1281,9 @@ public virtual void Can_query_using_any_mapped_data_types_with_nulls() StringEnum16? param60 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.EnumAsVarcharMax == param60)); - object param61 = null; + object? param61 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.SqlVariantString == param61)); - object param62 = null; + object? param62 = null; Assert.Same(entity, context.Set().Single(e => e.Int == 911 && e.SqlVariantInt == param62)); } } @@ -1752,8 +1750,8 @@ private static void AssertMappedNullableDataTypes(MappedNullableDataTypes entity { Assert.Equal(id, entity.Int); Assert.Equal(78, entity.LongAsBigint); - Assert.Equal(79, entity.ShortAsSmallint.Value); - Assert.Equal(80, entity.ByteAsTinyint.Value); + Assert.Equal(79, entity.ShortAsSmallint!.Value); + Assert.Equal(80, entity.ByteAsTinyint!.Value); Assert.Equal(uint.MaxValue, entity.UintAsInt); Assert.Equal(ulong.MaxValue, entity.UlongAsBigint); Assert.Equal(ushort.MaxValue, entity.UShortAsSmallint); @@ -2839,8 +2837,8 @@ private static void AssertMappedNullableDataTypesWithIdentity(MappedNullableData { Assert.Equal(id, entity.Int); Assert.Equal(78, entity.LongAsBigint); - Assert.Equal(79, entity.ShortAsSmallint.Value); - Assert.Equal(80, entity.ByteAsTinyint.Value); + Assert.Equal(79, entity.ShortAsSmallint!.Value); + Assert.Equal(80, entity.ByteAsTinyint!.Value); Assert.Equal(uint.MaxValue, entity.UintAsInt); Assert.Equal(ulong.MaxValue, entity.UlongAsBigint); Assert.Equal(ushort.MaxValue, entity.UshortAsSmallint); @@ -3697,7 +3695,7 @@ public void Can_get_column_types_from_built_model() { Assert.Equal( columnType.ToLowerInvariant(), - typeMapper.FindMapping(property).StoreType.ToLowerInvariant()); + typeMapper.FindMapping(property)!.StoreType.ToLowerInvariant()); } } } @@ -3903,7 +3901,7 @@ FROM [XmlTestDocument] AS [x] private class XmlTestDocument { public int Id { get; set; } - public string Content { get; set; } + public string? Content { get; set; } } private void AssertSql(params string[] expected) @@ -3967,9 +3965,10 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con modelBuilder.Entity(); modelBuilder.Entity(); - modelBuilder.Entity() - .Property(e => e.Id) - .ValueGeneratedNever(); + modelBuilder.Entity(b => + { + b.Property(e => e.Id).ValueGeneratedNever(); + }); modelBuilder.Entity(b => { @@ -4059,6 +4058,25 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con b.Property(e => e.DecimalAsDec52).HasPrecision(5, 2); b.Property(e => e.DecimalAsNumeric52).HasPrecision(5, 2); }); + + MakeReferencePropertiesOptional(modelBuilder); + MakeReferencePropertiesOptional(modelBuilder); + MakeReferencePropertiesOptional(modelBuilder); + MakeReferencePropertiesOptional(modelBuilder); + MakeReferencePropertiesOptional(modelBuilder); + MakeReferencePropertiesOptional(modelBuilder); + } + + private static void MakeReferencePropertiesOptional(ModelBuilder modelBuilder) + where TEntity : class + { + foreach (var property in modelBuilder.Entity().Metadata.GetDeclaredProperties()) + { + if (!property.ClrType.IsValueType) + { + property.IsNullable = true; + } + } } public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder) @@ -4162,46 +4180,46 @@ protected class MappedDataTypes public TimeSpan TimeSpanAsTime { get; set; } [Column(TypeName = "varchar(max)")] - public string StringAsVarcharMax { get; set; } + public string StringAsVarcharMax { get; set; } = null!; [Column(TypeName = "char varying(max)")] - public string StringAsCharVaryingMax { get; set; } + public string StringAsCharVaryingMax { get; set; } = null!; [Column(TypeName = "character varying(max)")] - public string StringAsCharacterVaryingMax { get; set; } + public string StringAsCharacterVaryingMax { get; set; } = null!; [Column(TypeName = "nvarchar(max)")] - public string StringAsNvarcharMax { get; set; } + public string StringAsNvarcharMax { get; set; } = null!; [Column(TypeName = "national char varying(max)")] - public string StringAsNationalCharVaryingMax { get; set; } + public string StringAsNationalCharVaryingMax { get; set; } = null!; [Column(TypeName = "national character varying(max)")] - public string StringAsNationalCharacterVaryingMax { get; set; } + public string StringAsNationalCharacterVaryingMax { get; set; } = null!; [Column(TypeName = "varchar(max)"), Unicode] - public string StringAsVarcharMaxUtf8 { get; set; } + public string StringAsVarcharMaxUtf8 { get; set; } = null!; [Column(TypeName = "char varying(max)"), Unicode] - public string StringAsCharVaryingMaxUtf8 { get; set; } + public string StringAsCharVaryingMaxUtf8 { get; set; } = null!; [Column(TypeName = "character varying(max)"), Unicode] - public string StringAsCharacterVaryingMaxUtf8 { get; set; } + public string StringAsCharacterVaryingMaxUtf8 { get; set; } = null!; [Column(TypeName = "text")] - public string StringAsText { get; set; } + public string StringAsText { get; set; } = null!; [Column(TypeName = "ntext")] - public string StringAsNtext { get; set; } + public string StringAsNtext { get; set; } = null!; [Column(TypeName = "varbinary(max)")] - public byte[] BytesAsVarbinaryMax { get; set; } + public byte[] BytesAsVarbinaryMax { get; set; } = null!; [Column(TypeName = "binary varying(max)")] - public byte[] BytesAsBinaryVaryingMax { get; set; } + public byte[] BytesAsBinaryVaryingMax { get; set; } = null!; [Column(TypeName = "image")] - public byte[] BytesAsImage { get; set; } + public byte[] BytesAsImage { get; set; } = null!; [Column(TypeName = "decimal")] public decimal Decimal { get; set; } @@ -4261,10 +4279,10 @@ protected class MappedDataTypes public StringEnumU16 EnumAsNvarchar20 { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantString { get; set; } + public object SqlVariantString { get; set; } = null!; [Column(TypeName = "sql_variant")] - public object SqlVariantInt { get; set; } + public object SqlVariantInt { get; set; } = null!; } protected class MappedSquareDataTypes @@ -4333,22 +4351,22 @@ protected class MappedSquareDataTypes public TimeSpan TimeSpanAsTime { get; set; } [Column(TypeName = "[varchar](max)")] - public string StringAsVarcharMax { get; set; } + public string StringAsVarcharMax { get; set; } = null!; [Column(TypeName = "[nvarchar](max)")] - public string StringAsNvarcharMax { get; set; } + public string StringAsNvarcharMax { get; set; } = null!; [Column(TypeName = "[text]")] - public string StringAsText { get; set; } + public string StringAsText { get; set; } = null!; [Column(TypeName = "[ntext]")] - public string StringAsNtext { get; set; } + public string StringAsNtext { get; set; } = null!; [Column(TypeName = "[varbinary](max)")] - public byte[] BytesAsVarbinaryMax { get; set; } + public byte[] BytesAsVarbinaryMax { get; set; } = null!; [Column(TypeName = "[image]")] - public byte[] BytesAsImage { get; set; } + public byte[] BytesAsImage { get; set; } = null!; [Column(TypeName = "[decimal]")] public decimal Decimal { get; set; } @@ -4396,10 +4414,10 @@ protected class MappedSquareDataTypes public StringEnumU16 EnumAsNvarchar20 { get; set; } [Column(TypeName = "[sql_variant]")] - public object SqlVariantString { get; set; } + public object SqlVariantString { get; set; } = null!; [Column(TypeName = "[sql_variant]")] - public object SqlVariantInt { get; set; } + public object SqlVariantInt { get; set; } = null!; } protected class MappedSizedDataTypes @@ -4407,58 +4425,58 @@ protected class MappedSizedDataTypes public int Id { get; set; } [Column(TypeName = "char(3)")] - public string StringAsChar3 { get; set; } + public string? StringAsChar3 { get; set; } [Column(TypeName = "character(3)")] - public string StringAsCharacter3 { get; set; } + public string? StringAsCharacter3 { get; set; } [Column(TypeName = "varchar(3)")] - public string StringAsVarchar3 { get; set; } + public string? StringAsVarchar3 { get; set; } [Column(TypeName = "char varying(3)")] - public string StringAsCharVarying3 { get; set; } + public string? StringAsCharVarying3 { get; set; } [Column(TypeName = "character varying(3)")] - public string StringAsCharacterVarying3 { get; set; } + public string? StringAsCharacterVarying3 { get; set; } [Column(TypeName = "nchar(3)")] - public string StringAsNchar3 { get; set; } + public string? StringAsNchar3 { get; set; } [Column(TypeName = "national character(3)")] - public string StringAsNationalCharacter3 { get; set; } + public string? StringAsNationalCharacter3 { get; set; } [Column(TypeName = "nvarchar(3)")] - public string StringAsNvarchar3 { get; set; } + public string? StringAsNvarchar3 { get; set; } [Column(TypeName = "national char varying(3)")] - public string StringAsNationalCharVarying3 { get; set; } + public string? StringAsNationalCharVarying3 { get; set; } [Column(TypeName = "national character varying(3)")] - public string StringAsNationalCharacterVarying3 { get; set; } + public string? StringAsNationalCharacterVarying3 { get; set; } [Column(TypeName = "char(3)"), Unicode] - public string StringAsChar3Utf8 { get; set; } + public string? StringAsChar3Utf8 { get; set; } [Column(TypeName = "character(3)"), Unicode] - public string StringAsCharacter3Utf8 { get; set; } + public string? StringAsCharacter3Utf8 { get; set; } [Column(TypeName = "varchar(3)"), Unicode] - public string StringAsVarchar3Utf8 { get; set; } + public string? StringAsVarchar3Utf8 { get; set; } [Column(TypeName = "char varying(3)"), Unicode] - public string StringAsCharVarying3Utf8 { get; set; } + public string? StringAsCharVarying3Utf8 { get; set; } [Column(TypeName = "character varying(3)"), Unicode] - public string StringAsCharacterVarying3Utf8 { get; set; } + public string? StringAsCharacterVarying3Utf8 { get; set; } [Column(TypeName = "binary(3)")] - public byte[] BytesAsBinary3 { get; set; } + public byte[]? BytesAsBinary3 { get; set; } [Column(TypeName = "varbinary(3)")] - public byte[] BytesAsVarbinary3 { get; set; } + public byte[]? BytesAsVarbinary3 { get; set; } [Column(TypeName = "binary varying(3)")] - public byte[] BytesAsBinaryVarying3 { get; set; } + public byte[]? BytesAsBinaryVarying3 { get; set; } [Column(TypeName = "varchar(3)")] public char? CharAsVarchar3 { get; set; } @@ -4484,58 +4502,58 @@ protected class MappedSizedSeparatelyDataTypes public int Id { get; set; } [Column(TypeName = "char")] - public string StringAsChar3 { get; set; } + public string? StringAsChar3 { get; set; } [Column(TypeName = "character")] - public string StringAsCharacter3 { get; set; } + public string? StringAsCharacter3 { get; set; } [Column(TypeName = "varchar")] - public string StringAsVarchar3 { get; set; } + public string? StringAsVarchar3 { get; set; } [Column(TypeName = "char varying")] - public string StringAsCharVarying3 { get; set; } + public string? StringAsCharVarying3 { get; set; } [Column(TypeName = "character varying")] - public string StringAsCharacterVarying3 { get; set; } + public string? StringAsCharacterVarying3 { get; set; } [Column(TypeName = "nchar")] - public string StringAsNchar3 { get; set; } + public string? StringAsNchar3 { get; set; } [Column(TypeName = "national character")] - public string StringAsNationalCharacter3 { get; set; } + public string? StringAsNationalCharacter3 { get; set; } [Column(TypeName = "nvarchar")] - public string StringAsNvarchar3 { get; set; } + public string? StringAsNvarchar3 { get; set; } [Column(TypeName = "national char varying")] - public string StringAsNationalCharVarying3 { get; set; } + public string? StringAsNationalCharVarying3 { get; set; } [Column(TypeName = "national character varying")] - public string StringAsNationalCharacterVarying3 { get; set; } + public string? StringAsNationalCharacterVarying3 { get; set; } [Column(TypeName = "char")] - public string StringAsChar3Utf8 { get; set; } + public string? StringAsChar3Utf8 { get; set; } [Column(TypeName = "character")] - public string StringAsCharacter3Utf8 { get; set; } + public string? StringAsCharacter3Utf8 { get; set; } [Column(TypeName = "varchar")] - public string StringAsVarchar3Utf8 { get; set; } + public string? StringAsVarchar3Utf8 { get; set; } [Column(TypeName = "char varying")] - public string StringAsCharVarying3Utf8 { get; set; } + public string? StringAsCharVarying3Utf8 { get; set; } [Column(TypeName = "character varying")] - public string StringAsCharacterVarying3Utf8 { get; set; } + public string? StringAsCharacterVarying3Utf8 { get; set; } [Column(TypeName = "binary")] - public byte[] BytesAsBinary3 { get; set; } + public byte[]? BytesAsBinary3 { get; set; } [Column(TypeName = "varbinary")] - public byte[] BytesAsVarbinary3 { get; set; } + public byte[]? BytesAsVarbinary3 { get; set; } [Column(TypeName = "binary varying")] - public byte[] BytesAsBinaryVarying3 { get; set; } + public byte[]? BytesAsBinaryVarying3 { get; set; } [Column(TypeName = "varchar")] public char? CharAsVarchar3 { get; set; } @@ -4737,46 +4755,46 @@ protected class MappedNullableDataTypes public TimeSpan? TimeSpanAsTime { get; set; } [Column(TypeName = "varchar(max)")] - public string StringAsVarcharMax { get; set; } + public string? StringAsVarcharMax { get; set; } [Column(TypeName = "char varying(max)")] - public string StringAsCharVaryingMax { get; set; } + public string? StringAsCharVaryingMax { get; set; } [Column(TypeName = "character varying(max)")] - public string StringAsCharacterVaryingMax { get; set; } + public string? StringAsCharacterVaryingMax { get; set; } [Column(TypeName = "nvarchar(max)")] - public string StringAsNvarcharMax { get; set; } + public string? StringAsNvarcharMax { get; set; } [Column(TypeName = "national char varying(max)"), MaxLength(100)] - public string StringAsNationalCharVaryingMax { get; set; } + public string? StringAsNationalCharVaryingMax { get; set; } [Column(TypeName = "national character varying(max)"), StringLength(100)] - public string StringAsNationalCharacterVaryingMax { get; set; } + public string? StringAsNationalCharacterVaryingMax { get; set; } [Column(TypeName = "varchar(max)"), Unicode] - public string StringAsVarcharMaxUtf8 { get; set; } + public string? StringAsVarcharMaxUtf8 { get; set; } [Column(TypeName = "char varying(max)"), Unicode] - public string StringAsCharVaryingMaxUtf8 { get; set; } + public string? StringAsCharVaryingMaxUtf8 { get; set; } [Column(TypeName = "character varying(max)"), Unicode] - public string StringAsCharacterVaryingMaxUtf8 { get; set; } + public string? StringAsCharacterVaryingMaxUtf8 { get; set; } [Column(TypeName = "text")] - public string StringAsText { get; set; } + public string? StringAsText { get; set; } [Column(TypeName = "ntext")] - public string StringAsNtext { get; set; } + public string? StringAsNtext { get; set; } [Column(TypeName = "varbinary(max)")] - public byte[] BytesAsVarbinaryMax { get; set; } + public byte[]? BytesAsVarbinaryMax { get; set; } [Column(TypeName = "binary varying(max)")] - public byte[] BytesAsBinaryVaryingMax { get; set; } + public byte[]? BytesAsBinaryVaryingMax { get; set; } [Column(TypeName = "image")] - public byte[] BytesAsImage { get; set; } + public byte[]? BytesAsImage { get; set; } [Column(TypeName = "decimal")] public decimal? Decimal { get; set; } @@ -4836,10 +4854,10 @@ protected class MappedNullableDataTypes public StringEnumU16? EnumAsNvarchar20 { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantString { get; set; } + public object? SqlVariantString { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantInt { get; set; } + public object? SqlVariantInt { get; set; } } protected class MappedDataTypesWithIdentity @@ -4913,46 +4931,46 @@ protected class MappedDataTypesWithIdentity public TimeSpan TimeSpanAsTime { get; set; } [Column(TypeName = "varchar(max)")] - public string StringAsVarcharMax { get; set; } + public string StringAsVarcharMax { get; set; } = null!; [Column(TypeName = "char varying(max)")] - public string StringAsCharVaryingMax { get; set; } + public string StringAsCharVaryingMax { get; set; } = null!; [Column(TypeName = "character varying(max)")] - public string StringAsCharacterVaryingMax { get; set; } + public string StringAsCharacterVaryingMax { get; set; } = null!; [Column(TypeName = "nvarchar(max)")] - public string StringAsNvarcharMax { get; set; } + public string StringAsNvarcharMax { get; set; } = null!; [Column(TypeName = "national char varying(max)")] - public string StringAsNationalCharVaryingMax { get; set; } + public string StringAsNationalCharVaryingMax { get; set; } = null!; [Column(TypeName = "national character varying(max)")] - public string StringAsNationalCharacterVaryingMax { get; set; } + public string StringAsNationalCharacterVaryingMax { get; set; } = null!; [Column(TypeName = "varchar(max)"), Unicode] - public string StringAsVarcharMaxUtf8 { get; set; } + public string StringAsVarcharMaxUtf8 { get; set; } = null!; [Column(TypeName = "char varying(max)"), Unicode] - public string StringAsCharVaryingMaxUtf8 { get; set; } + public string StringAsCharVaryingMaxUtf8 { get; set; } = null!; [Column(TypeName = "character varying(max)"), Unicode] - public string StringAsCharacterVaryingMaxUtf8 { get; set; } + public string StringAsCharacterVaryingMaxUtf8 { get; set; } = null!; [Column(TypeName = "text")] - public string StringAsText { get; set; } + public string StringAsText { get; set; } = null!; [Column(TypeName = "ntext")] - public string StringAsNtext { get; set; } + public string StringAsNtext { get; set; } = null!; [Column(TypeName = "varbinary(max)")] - public byte[] BytesAsVarbinaryMax { get; set; } + public byte[] BytesAsVarbinaryMax { get; set; } = null!; [Column(TypeName = "binary varying(max)")] - public byte[] BytesAsBinaryVaryingMax { get; set; } + public byte[] BytesAsBinaryVaryingMax { get; set; } = null!; [Column(TypeName = "image")] - public byte[] BytesAsImage { get; set; } + public byte[] BytesAsImage { get; set; } = null!; [Column(TypeName = "decimal")] public decimal Decimal { get; set; } @@ -5012,10 +5030,10 @@ protected class MappedDataTypesWithIdentity public StringEnumU16 EnumAsNvarchar20 { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantString { get; set; } + public object SqlVariantString { get; set; } = null!; [Column(TypeName = "sql_variant")] - public object SqlVariantInt { get; set; } + public object SqlVariantInt { get; set; } = null!; } protected class MappedSizedDataTypesWithIdentity @@ -5024,58 +5042,58 @@ protected class MappedSizedDataTypesWithIdentity public int Int { get; set; } [Column(TypeName = "char(3)")] - public string StringAsChar3 { get; set; } + public string? StringAsChar3 { get; set; } [Column(TypeName = "character(3)")] - public string StringAsCharacter3 { get; set; } + public string? StringAsCharacter3 { get; set; } [Column(TypeName = "varchar(3)")] - public string StringAsVarchar3 { get; set; } + public string? StringAsVarchar3 { get; set; } [Column(TypeName = "char varying(3)")] - public string StringAsCharVarying3 { get; set; } + public string? StringAsCharVarying3 { get; set; } [Column(TypeName = "character varying(3)")] - public string StringAsCharacterVarying3 { get; set; } + public string? StringAsCharacterVarying3 { get; set; } [Column(TypeName = "nchar(3)")] - public string StringAsNchar3 { get; set; } + public string? StringAsNchar3 { get; set; } [Column(TypeName = "national character(3)")] - public string StringAsNationalCharacter3 { get; set; } + public string? StringAsNationalCharacter3 { get; set; } [Column(TypeName = "nvarchar(3)")] - public string StringAsNvarchar3 { get; set; } + public string? StringAsNvarchar3 { get; set; } [Column(TypeName = "national char varying(3)")] - public string StringAsNationalCharVarying3 { get; set; } + public string? StringAsNationalCharVarying3 { get; set; } [Column(TypeName = "national character varying(3)")] - public string StringAsNationalCharacterVarying3 { get; set; } + public string? StringAsNationalCharacterVarying3 { get; set; } [Column(TypeName = "char(3)"), Unicode] - public string StringAsChar3Utf8 { get; set; } + public string? StringAsChar3Utf8 { get; set; } [Column(TypeName = "character(3)"), Unicode] - public string StringAsCharacter3Utf8 { get; set; } + public string? StringAsCharacter3Utf8 { get; set; } [Column(TypeName = "varchar(3)"), Unicode] - public string StringAsVarchar3Utf8 { get; set; } + public string? StringAsVarchar3Utf8 { get; set; } [Column(TypeName = "char varying(3)"), Unicode] - public string StringAsCharVarying3Utf8 { get; set; } + public string? StringAsCharVarying3Utf8 { get; set; } [Column(TypeName = "character varying(3)"), Unicode] - public string StringAsCharacterVarying3Utf8 { get; set; } + public string? StringAsCharacterVarying3Utf8 { get; set; } [Column(TypeName = "binary(3)")] - public byte[] BytesAsBinary3 { get; set; } + public byte[]? BytesAsBinary3 { get; set; } [Column(TypeName = "varbinary(3)")] - public byte[] BytesAsVarbinary3 { get; set; } + public byte[]? BytesAsVarbinary3 { get; set; } [Column(TypeName = "binary varying(3)")] - public byte[] BytesAsBinaryVarying3 { get; set; } + public byte[]? BytesAsBinaryVarying3 { get; set; } [Column(TypeName = "varchar(3)")] public char? CharAsVarchar3 { get; set; } @@ -5221,46 +5239,46 @@ protected class MappedNullableDataTypesWithIdentity public TimeSpan? TimeSpanAsTime { get; set; } [Column(TypeName = "varchar(max)")] - public string StringAsVarcharMax { get; set; } + public string? StringAsVarcharMax { get; set; } [Column(TypeName = "char varying(max)")] - public string StringAsCharVaryingMax { get; set; } + public string? StringAsCharVaryingMax { get; set; } [Column(TypeName = "character varying(max)")] - public string StringAsCharacterVaryingMax { get; set; } + public string? StringAsCharacterVaryingMax { get; set; } [Column(TypeName = "nvarchar(max)")] - public string StringAsNvarcharMax { get; set; } + public string? StringAsNvarcharMax { get; set; } [Column(TypeName = "national char varying(max)")] - public string StringAsNationalCharVaryingMax { get; set; } + public string? StringAsNationalCharVaryingMax { get; set; } [Column(TypeName = "national character varying(max)")] - public string StringAsNationalCharacterVaryingMax { get; set; } + public string? StringAsNationalCharacterVaryingMax { get; set; } [Column(TypeName = "varchar(max)"), Unicode] - public string StringAsVarcharMaxUtf8 { get; set; } + public string? StringAsVarcharMaxUtf8 { get; set; } [Column(TypeName = "char varying(max)"), Unicode] - public string StringAsCharVaryingMaxUtf8 { get; set; } + public string? StringAsCharVaryingMaxUtf8 { get; set; } [Column(TypeName = "character varying(max)"), Unicode] - public string StringAsCharacterVaryingMaxUtf8 { get; set; } + public string? StringAsCharacterVaryingMaxUtf8 { get; set; } [Column(TypeName = "text")] - public string StringAsText { get; set; } + public string? StringAsText { get; set; } [Column(TypeName = "ntext")] - public string StringAsNtext { get; set; } + public string? StringAsNtext { get; set; } [Column(TypeName = "varbinary(max)")] - public byte[] BytesAsVarbinaryMax { get; set; } + public byte[]? BytesAsVarbinaryMax { get; set; } [Column(TypeName = "binary varying(max)")] - public byte[] BytesAsVaryingMax { get; set; } + public byte[]? BytesAsVaryingMax { get; set; } [Column(TypeName = "image")] - public byte[] BytesAsImage { get; set; } + public byte[]? BytesAsImage { get; set; } [Column(TypeName = "decimal")] public decimal? Decimal { get; set; } @@ -5320,17 +5338,17 @@ protected class MappedNullableDataTypesWithIdentity public StringEnumU16? EnumAsNvarchar20 { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantString { get; set; } + public object? SqlVariantString { get; set; } [Column(TypeName = "sql_variant")] - public object SqlVariantInt { get; set; } + public object? SqlVariantInt { get; set; } } public class ColumnInfo { - public string TableName { get; set; } - public string ColumnName { get; set; } - public string DataType { get; set; } + public string TableName { get; set; } = null!; + public string ColumnName { get; set; } = null!; + public string DataType { get; set; } = null!; public bool? IsNullable { get; set; } public int? MaxLength { get; set; } public int? NumericPrecision { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerFixture.cs index 6dabfec20fd..546983ab38a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCFiltersInheritanceBulkUpdatesSqlServerFixture : TPCInheritanceBulkUpdatesSqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerTest.cs index 0968918130d..92dc472c8fd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCFiltersInheritanceBulkUpdatesSqlServerTest( TPCFiltersInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerFixture.cs index fad0c658184..7d3da0854f5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCInheritanceBulkUpdatesSqlServerFixture : TPCInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerTest.cs index f8e05db5e02..f96e18d1618 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCInheritanceBulkUpdatesSqlServerTest( TPCInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerFixture.cs index af44abb93f3..2f056f17038 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHFiltersInheritanceBulkUpdatesSqlServerFixture : TPHInheritanceBulkUpdatesSqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerTest.cs index 26b3ae47f40..3369cd5b10d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHFiltersInheritanceBulkUpdatesSqlServerTest( TPHFiltersInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerFixture.cs index afc59289006..6c8fddf87f5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHInheritanceBulkUpdatesSqlServerFixture : TPHInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerTest.cs index 5ec3d8766d1..f2ce9eae10d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHInheritanceBulkUpdatesSqlServerTest( TPHInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerFixture.cs index 9cceb7bb1cf..9efcacda534 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTFiltersInheritanceBulkUpdatesSqlServerFixture : TPTInheritanceBulkUpdatesSqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerTest.cs index ee8d53c9b25..68b44f5bb32 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTFiltersInheritanceBulkUpdatesSqlServerTest( TPTFiltersInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerFixture.cs index 510c90d92d5..da8d4377347 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTInheritanceBulkUpdatesSqlServerFixture : TPTInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerTest.cs index 90da363c4b2..7b4e82c993c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTInheritanceBulkUpdatesSqlServerTest : TPTInheritanceBulkUpdatesTestBase { public TPTInheritanceBulkUpdatesSqlServerTest(TPTInheritanceBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqlServerTest.cs index fd45bb6d2b2..5930c31114b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NonSharedModelBulkUpdatesSqlServerTest(NonSharedFixture fixture) : NonSharedModelBulkUpdatesRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerFixture.cs index f59376bb3c9..03dfa995889 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NorthwindBulkUpdatesSqlServerFixture : NorthwindBulkUpdatesRelationalFixture where TModelCustomizer : ITestModelCustomizer, new() { diff --git a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerTest.cs index cf2a8e32126..29957fb3470 100644 --- a/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqlServerTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NorthwindBulkUpdatesSqlServerTest( NorthwindBulkUpdatesSqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/CommandConfigurationTest.cs b/test/EFCore.SqlServer.FunctionalTests/CommandConfigurationTest.cs index 82ff9aa5682..fe2e563e34c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/CommandConfigurationTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/CommandConfigurationTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CommandConfigurationTest : IClassFixture { public CommandConfigurationTest(CommandConfigurationFixture fixture) @@ -65,7 +63,7 @@ where word.Contains(searchTerm) private class ChipsContext(DbContextOptions options) : PoolableDbContext(options) { - public DbSet Chips { get; set; } + public DbSet Chips { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.UseHiLo(); @@ -76,7 +74,7 @@ private class KettleChips // ReSharper disable once UnusedMember.Local public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime BestBuyDate { get; set; } } diff --git a/test/EFCore.SqlServer.FunctionalTests/CommandInterceptionSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/CommandInterceptionSqlServerTest.cs index a71b38e3340..41e77f44b1f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/CommandInterceptionSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/CommandInterceptionSqlServerTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class CommandInterceptionSqlServerTestBase(CommandInterceptionSqlServerTestBase.InterceptionSqlServerFixtureBase fixture) : CommandInterceptionTestBase(fixture) { @@ -19,7 +17,7 @@ public override async Task Intercept_query_passively(bool async, bool in """, await base.Intercept_query_passively(async, inject)); - return null; + return null!; } protected override async Task QueryMutationTest(bool async, bool inject) @@ -30,7 +28,7 @@ protected override async Task QueryMutationTest(bool async """, await base.QueryMutationTest(async, inject)); - return null; + return null!; } public override async Task Intercept_query_to_replace_execution(bool async, bool inject) @@ -41,7 +39,7 @@ public override async Task Intercept_query_to_replace_execution(bool asy """, await base.Intercept_query_to_replace_execution(async, inject)); - return null; + return null!; } [Theory, InlineData(false, false), InlineData(true, false), InlineData(false, true), InlineData(true, true)] diff --git a/test/EFCore.SqlServer.FunctionalTests/CompositeKeyEndToEndSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/CompositeKeyEndToEndSqlServerTest.cs index 7ce2175182b..f6d3308d0f6 100644 --- a/test/EFCore.SqlServer.FunctionalTests/CompositeKeyEndToEndSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/CompositeKeyEndToEndSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CompositeKeyEndToEndSqlServerTest(CompositeKeyEndToEndSqlServerTest.CompositeKeyEndToEndSqlServerFixture fixture) : CompositeKeyEndToEndTestBase< CompositeKeyEndToEndSqlServerTest.CompositeKeyEndToEndSqlServerFixture>(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/ComputedColumnTest.cs b/test/EFCore.SqlServer.FunctionalTests/ComputedColumnTest.cs index d6f684dc699..55c37d887e0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ComputedColumnTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ComputedColumnTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ComputedColumnTest : IAsyncLifetime { [Fact] @@ -51,7 +49,7 @@ public void Can_use_computed_columns_with_null_values() private class Context(IServiceProvider serviceProvider, string databaseName) : DbContext { - public DbSet Entities { get; set; } + public DbSet Entities { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -99,7 +97,7 @@ public class EnumItem private class NullableContext(IServiceProvider serviceProvider, string databaseName) : DbContext { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet EnumItems { get; set; } + public DbSet EnumItems { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -128,7 +126,7 @@ public void Can_use_computed_columns_with_nullable_enum() Assert.Equal(FlagEnum.AValue | FlagEnum.BValue, entity.CalculatedFlagEnum); } - protected SqlServerTestStore TestStore { get; private set; } + protected SqlServerTestStore TestStore { get; private set; } = null!; public async ValueTask InitializeAsync() => TestStore = await SqlServerTestStore.CreateInitializedAsync("ComputedColumnTest"); diff --git a/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorDisabledSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorDisabledSqlServerTest.cs index da8a5f4ebcc..34d441764e0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorDisabledSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorDisabledSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorDisabledSqlServerTest : ConcurrencyDetectorDisabledRelationalTestBase< ConcurrencyDetectorDisabledSqlServerTest.ConcurrencyDetectorSqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorEnabledSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorEnabledSqlServerTest.cs index f1b771d3171..4254326fc02 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorEnabledSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ConcurrencyDetectorEnabledSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorEnabledSqlServerTest : ConcurrencyDetectorEnabledRelationalTestBase< ConcurrencyDetectorEnabledSqlServerTest.ConcurrencyDetectorSqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/ConferencePlannerSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ConferencePlannerSqlServerTest.cs index 86e5d615196..bad6554710b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ConferencePlannerSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ConferencePlannerSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConferencePlannerSqlServerTest(ConferencePlannerSqlServerTest.ConferencePlannerSqlServerFixture fixture) : ConferencePlannerTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/ConnectionSpecificationTest.cs b/test/EFCore.SqlServer.FunctionalTests/ConnectionSpecificationTest.cs index 5fbb7b8e40c..4b19c4e8055 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ConnectionSpecificationTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ConnectionSpecificationTest.cs @@ -10,8 +10,6 @@ // ReSharper disable UnusedAutoPropertyAccessor.Local namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConnectionSpecificationTest { [Fact] @@ -469,7 +467,7 @@ public async Task Can_use_AddDbContext_and_get_connection_string_from_config(str { var configBuilder = new ConfigurationBuilder() .AddInMemoryCollection( - new Dictionary { { key, SqlServerNorthwindTestStoreFactory.NorthwindConnectionString } }); + new Dictionary { { key, SqlServerNorthwindTestStoreFactory.NorthwindConnectionString } }); var serviceProvider = new ServiceCollection() @@ -498,7 +496,7 @@ protected NorthwindContextBase(DbContextOptions options) { } - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(b => @@ -510,12 +508,12 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class Customer { - public string CustomerID { get; set; } + public string CustomerID { get; set; } = null!; // ReSharper disable UnusedMember.Local - public string CompanyName { get; set; } + public string? CompanyName { get; set; } - public string Fax { get; set; } + public string? Fax { get; set; } // ReSharper restore UnusedMember.Local } @@ -580,7 +578,7 @@ private class NorthwindContext(IServiceProvider serviceProvider, SqlConnection c private readonly SqlConnection _connection = connection; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder diff --git a/test/EFCore.SqlServer.FunctionalTests/ConvertToProviderTypesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ConvertToProviderTypesSqlServerTest.cs index 437fdda4080..5e368ea25a9 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ConvertToProviderTypesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ConvertToProviderTypesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsNotAzureSql))] public class ConvertToProviderTypesSqlServerTest(ConvertToProviderTypesSqlServerTest.ConvertToProviderTypesSqlServerFixture fixture) : ConvertToProviderTypesTestBase< diff --git a/test/EFCore.SqlServer.FunctionalTests/CustomConvertersSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/CustomConvertersSqlServerTest.cs index d063e21958e..5e1174d21d6 100644 --- a/test/EFCore.SqlServer.FunctionalTests/CustomConvertersSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/CustomConvertersSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsNotAzureSql))] public class CustomConvertersSqlServerTest : CustomConvertersTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/DataAnnotationSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/DataAnnotationSqlServerTest.cs index 843c025430a..7ebdff8549f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/DataAnnotationSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/DataAnnotationSqlServerTest.cs @@ -7,8 +7,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DataAnnotationSqlServerTest : DataAnnotationRelationalTestBase { public DataAnnotationSqlServerTest(DataAnnotationSqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -154,7 +152,7 @@ public override IModel TableNameAttribute_affects_table_name_in_TPH() { var model = base.TableNameAttribute_affects_table_name_in_TPH(); - Assert.Equal("A", model.FindEntityType(typeof(TNAttrBase)).GetTableName()); + Assert.Equal("A", model.FindEntityType(typeof(TNAttrBase))!.GetTableName()); return model; } @@ -163,8 +161,8 @@ public override IModel DatabaseGeneratedOption_configures_the_property_correctly { var model = base.DatabaseGeneratedOption_configures_the_property_correctly(); - var identity = model.FindEntityType(typeof(GeneratedEntity)).FindProperty(nameof(GeneratedEntity.Identity)); - Assert.Equal(SqlServerValueGenerationStrategy.IdentityColumn, identity.GetValueGenerationStrategy()); + var identity = model.FindEntityType(typeof(GeneratedEntity))!.FindProperty(nameof(GeneratedEntity.Identity)); + Assert.Equal(SqlServerValueGenerationStrategy.IdentityColumn, identity!.GetValueGenerationStrategy()); return model; } @@ -179,23 +177,23 @@ public virtual void ColumnAttribute_configures_the_property_correctly() Assert.Equal( "Unique_No", - model.FindEntityType(typeof(One)).FindProperty(nameof(One.UniqueNo)).GetColumnName()); + model.FindEntityType(typeof(One))!.FindProperty(nameof(One.UniqueNo))!.GetColumnName()); } public override IModel DatabaseGeneratedOption_Identity_does_not_throw_on_noninteger_properties() { var model = base.DatabaseGeneratedOption_Identity_does_not_throw_on_noninteger_properties(); - var entity = model.FindEntityType(typeof(GeneratedEntityNonInteger)); + var entity = model.FindEntityType(typeof(GeneratedEntityNonInteger))!; var stringProperty = entity.FindProperty(nameof(GeneratedEntityNonInteger.String)); - Assert.Equal(SqlServerValueGenerationStrategy.None, stringProperty.GetValueGenerationStrategy()); + Assert.Equal(SqlServerValueGenerationStrategy.None, stringProperty!.GetValueGenerationStrategy()); var dateTimeProperty = entity.FindProperty(nameof(GeneratedEntityNonInteger.DateTime)); - Assert.Equal(SqlServerValueGenerationStrategy.None, dateTimeProperty.GetValueGenerationStrategy()); + Assert.Equal(SqlServerValueGenerationStrategy.None, dateTimeProperty!.GetValueGenerationStrategy()); var guidProperty = entity.FindProperty(nameof(GeneratedEntityNonInteger.Guid)); - Assert.Equal(SqlServerValueGenerationStrategy.None, guidProperty.GetValueGenerationStrategy()); + Assert.Equal(SqlServerValueGenerationStrategy.None, guidProperty!.GetValueGenerationStrategy()); return model; } diff --git a/test/EFCore.SqlServer.FunctionalTests/DataBindingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/DataBindingSqlServerTest.cs index 706e4af97d3..ebd0ff7263f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/DataBindingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/DataBindingSqlServerTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DataBindingSqlServerTest(F1SqlServerFixture fixture) : DataBindingTestBase(fixture); diff --git a/test/EFCore.SqlServer.FunctionalTests/DbContextPoolingTest.cs b/test/EFCore.SqlServer.FunctionalTests/DbContextPoolingTest.cs index 0f328587399..e5d1e8ab597 100644 --- a/test/EFCore.SqlServer.FunctionalTests/DbContextPoolingTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/DbContextPoolingTest.cs @@ -18,7 +18,6 @@ // ReSharper disable VirtualMemberCallInConstructor namespace Microsoft.EntityFrameworkCore; -#nullable disable #pragma warning disable CS9113 // Parameter is unread. public class DbContextPoolingTest(NorthwindQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) : IClassFixture> @@ -35,7 +34,7 @@ private static DbContextOptionsBuilder ConfigureOptions(DbContextOptionsBuilder .UseSqlServer(SqlServerNorthwindTestStoreFactory.NorthwindConnectionString) .EnableServiceProviderCaching(false); - private static IServiceProvider BuildServiceProvider(Action optionsAction = null) + private static IServiceProvider BuildServiceProvider(Action? optionsAction = null) where TContextService : class where TContext : DbContext, TContextService => new ServiceCollection() @@ -51,7 +50,7 @@ private static IServiceProvider BuildServiceProvider( }) .BuildServiceProvider(validateScopes: true); - private static IServiceProvider BuildServiceProvider(Action optionsAction = null) + private static IServiceProvider BuildServiceProvider(Action? optionsAction = null) where TContext : DbContext => new ServiceCollection() .AddDbContextPool(ob => @@ -98,13 +97,13 @@ private static IServiceProvider BuildServiceProviderWithFactory(int po private static IDbContextFactory BuildFactory(bool withDependencyInjection) where TContext : DbContext => withDependencyInjection - ? BuildServiceProviderWithFactory().GetService>() + ? BuildServiceProviderWithFactory().GetRequiredService>() : new PooledDbContextFactory(ConfigureOptions(new DbContextOptionsBuilder()).Options); private static IDbContextFactory BuildFactory(bool withDependencyInjection, int poolSize) where TContext : DbContext => withDependencyInjection - ? BuildServiceProviderWithFactory(poolSize).GetService>() + ? BuildServiceProviderWithFactory(poolSize).GetRequiredService>() : new PooledDbContextFactory(ConfigureOptions(new DbContextOptionsBuilder()).Options, poolSize); private interface IPooledContext; @@ -150,7 +149,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) } } - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -168,7 +167,7 @@ public override void Dispose() private class PooledContextWithOverrides(DbContextOptions options) : DbContext(options), IPooledContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -179,25 +178,25 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class Customer { - public string CustomerId { get; set; } - public string CompanyName { get; set; } - public ILazyLoader LazyLoader { get; set; } + public string CustomerId { get; set; } = null!; + public string CompanyName { get; set; } = null!; + public ILazyLoader LazyLoader { get; set; } = null!; public ObservableCollection Orders { get; } = []; } public class Order { public int OrderId { get; set; } - public ILazyLoader LazyLoader { get; set; } - public string CustomerId { get; set; } - public Customer Customer { get; set; } + public ILazyLoader LazyLoader { get; set; } = null!; + public string CustomerId { get; set; } = null!; + public Customer Customer { get; set; } = null!; } private interface ISecondContext; private class SecondContext(DbContextOptions options) : DbContext(options), ISecondContext { - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; public class Blog { @@ -496,7 +495,7 @@ var serviceProvider .BuildServiceProvider(validateScopes: true); using var scope = serviceProvider.CreateScope(); - var context = scope.ServiceProvider.GetService(); + var context = scope.ServiceProvider.GetRequiredService(); Assert.Equal("string", context.StringParameter); } @@ -612,9 +611,9 @@ public async Task Can_pool_non_derived_context(bool useFactory, bool async) async Task GetContextAsync(IServiceScope serviceScope) => useFactory ? async - ? await serviceScope.ServiceProvider.GetService>()!.CreateDbContextAsync() - : serviceScope.ServiceProvider.GetService>()!.CreateDbContext() - : serviceScope.ServiceProvider.GetService(); + ? await serviceScope.ServiceProvider.GetRequiredService>().CreateDbContextAsync() + : serviceScope.ServiceProvider.GetRequiredService>().CreateDbContext() + : serviceScope.ServiceProvider.GetRequiredService(); } [Theory, InlineData(false), InlineData(true)] @@ -627,10 +626,10 @@ public async Task ContextIds_make_sense_when_not_pooling(bool async) .BuildServiceProvider(validateScopes: true); var serviceScope1 = serviceProvider.CreateScope(); - var context1 = serviceScope1.ServiceProvider.GetService(); + var context1 = serviceScope1.ServiceProvider.GetRequiredService(); var serviceScope2 = serviceProvider.CreateScope(); - var context2 = serviceScope2.ServiceProvider.GetService(); + var context2 = serviceScope2.ServiceProvider.GetRequiredService(); Assert.NotSame(context1, context2); @@ -656,7 +655,7 @@ public async Task ContextIds_make_sense_when_not_pooling(bool async) Assert.Equal(0, id2d.Lease); var serviceScope3 = serviceProvider.CreateScope(); - var context3 = serviceScope3.ServiceProvider.GetService(); + var context3 = serviceScope3.ServiceProvider.GetRequiredService(); var id1r = context3.ContextId; @@ -667,7 +666,7 @@ public async Task ContextIds_make_sense_when_not_pooling(bool async) Assert.Equal(0, id1r.Lease); var serviceScope4 = serviceProvider.CreateScope(); - var context4 = serviceScope4.ServiceProvider.GetService(); + var context4 = serviceScope4.ServiceProvider.GetRequiredService(); var id2r = context4.ContextId; @@ -804,8 +803,8 @@ public async Task Context_configuration_is_reset(bool useInterface, bool async, var scopedProvider = serviceScope.ServiceProvider; var context1 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); Assert.Null(context1!.Database.GetCommandTimeout()); @@ -853,8 +852,8 @@ public async Task Context_configuration_is_reset(bool useInterface, bool async, scopedProvider = serviceScope.ServiceProvider; var context2 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); Assert.Same(context1, context2); @@ -1080,74 +1079,74 @@ public void Change_tracker_can_be_cleared_without_resetting_context_config() Assert.False(_context_OnSaveChangesFailed); } - private void Context_OnSavingChanges(object sender, SavingChangesEventArgs e) + private void Context_OnSavingChanges(object? sender, SavingChangesEventArgs e) => _context_OnSavingChanges = true; private bool _context_OnSavingChanges; - private void Context_OnSavedChanges(object sender, SavedChangesEventArgs e) + private void Context_OnSavedChanges(object? sender, SavedChangesEventArgs e) => _context_OnSavedChanges = true; private bool _context_OnSavedChanges; - private void Context_OnSaveChangesFailed(object sender, SaveChangesFailedEventArgs e) + private void Context_OnSaveChangesFailed(object? sender, SaveChangesFailedEventArgs e) => _context_OnSaveChangesFailed = true; private bool _context_OnSaveChangesFailed; private bool _localView_OnPropertyChanged; - private void LocalView_OnPropertyChanged(object sender, PropertyChangedEventArgs e) + private void LocalView_OnPropertyChanged(object? sender, PropertyChangedEventArgs e) => _localView_OnPropertyChanged = true; private bool _localView_OnPropertyChanging; - private void LocalView_OnPropertyChanging(object sender, PropertyChangingEventArgs e) + private void LocalView_OnPropertyChanging(object? sender, PropertyChangingEventArgs e) => _localView_OnPropertyChanging = true; private bool _localView_OnCollectionChanged; - private void LocalView_OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) + private void LocalView_OnCollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) => _localView_OnCollectionChanged = true; private bool _changeTracker_OnTracking; - private void ChangeTracker_OnTracking(object sender, EntityTrackingEventArgs e) + private void ChangeTracker_OnTracking(object? sender, EntityTrackingEventArgs e) => _changeTracker_OnTracking = true; private bool _changeTracker_OnTracked; - private void ChangeTracker_OnTracked(object sender, EntityTrackedEventArgs e) + private void ChangeTracker_OnTracked(object? sender, EntityTrackedEventArgs e) => _changeTracker_OnTracked = true; private bool _changeTracker_OnStateChanging; - private void ChangeTracker_OnStateChanging(object sender, EntityStateChangingEventArgs e) + private void ChangeTracker_OnStateChanging(object? sender, EntityStateChangingEventArgs e) => _changeTracker_OnStateChanging = true; private bool _changeTracker_OnStateChanged; - private void ChangeTracker_OnStateChanged(object sender, EntityStateChangedEventArgs e) + private void ChangeTracker_OnStateChanged(object? sender, EntityStateChangedEventArgs e) => _changeTracker_OnStateChanged = true; private bool _changeTracker_OnDetectingAllChanges; - private void ChangeTracker_OnDetectingAllChanges(object sender, DetectChangesEventArgs e) + private void ChangeTracker_OnDetectingAllChanges(object? sender, DetectChangesEventArgs e) => _changeTracker_OnDetectingAllChanges = true; private bool _changeTracker_OnDetectedAllChanges; - private void ChangeTracker_OnDetectedAllChanges(object sender, DetectedChangesEventArgs e) + private void ChangeTracker_OnDetectedAllChanges(object? sender, DetectedChangesEventArgs e) => _changeTracker_OnDetectedAllChanges = true; private bool _changeTracker_OnDetectingEntityChanges; - private void ChangeTracker_OnDetectingEntityChanges(object sender, DetectEntityChangesEventArgs e) + private void ChangeTracker_OnDetectingEntityChanges(object? sender, DetectEntityChangesEventArgs e) => _changeTracker_OnDetectingEntityChanges = true; private bool _changeTracker_OnDetectedEntityChanges; - private void ChangeTracker_OnDetectedEntityChanges(object sender, DetectedEntityChangesEventArgs e) + private void ChangeTracker_OnDetectedEntityChanges(object? sender, DetectedEntityChangesEventArgs e) => _changeTracker_OnDetectedEntityChanges = true; [Theory, InlineData(false, null), InlineData(true, null), InlineData(false, QueryTrackingBehavior.TrackAll), @@ -1232,8 +1231,8 @@ public async Task State_manager_is_reset(bool useInterface, bool async) var scopedProvider = serviceScope.ServiceProvider; var context1 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); var entity = context1.Customers.First(c => c.CustomerId == "ALFKI"); @@ -1245,8 +1244,8 @@ public async Task State_manager_is_reset(bool useInterface, bool async) scopedProvider = serviceScope.ServiceProvider; var context2 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); Assert.Same(context1, context2); Assert.Empty(context2.ChangeTracker.Entries()); @@ -1303,8 +1302,8 @@ public async Task Service_properties_are_disposed(bool useInterface, bool async, var scopedProvider = serviceScope.ServiceProvider; var context1 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); context1.ChangeTracker.LazyLoadingEnabled = true; @@ -1384,15 +1383,15 @@ public async Task Pool_disposes_context_when_context_not_pooled(bool useInterfac var scopedProvider1 = serviceScope1.ServiceProvider; var context1 = useInterface - ? (PooledContext)scopedProvider1.GetService() - : scopedProvider1.GetService(); + ? (PooledContext)scopedProvider1.GetRequiredService() + : scopedProvider1.GetRequiredService(); var serviceScope2 = serviceProvider.CreateScope(); var scopedProvider2 = serviceScope2.ServiceProvider; var context2 = useInterface - ? (PooledContext)scopedProvider2.GetService() - : scopedProvider2.GetService(); + ? (PooledContext)scopedProvider2.GetRequiredService() + : scopedProvider2.GetRequiredService(); await Dispose(serviceScope1, async); await Dispose(serviceScope2, async); @@ -1412,8 +1411,8 @@ public async Task Pool_disposes_contexts_when_disposed(bool useInterface, bool a var scopedProvider = serviceScope.ServiceProvider; var context = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); await Dispose(serviceScope, async); @@ -1433,8 +1432,8 @@ public async Task Object_in_pool_is_disposed(bool useInterface, bool async) var scopedProvider = serviceScope.ServiceProvider; var context = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); await Dispose(serviceScope, async); @@ -1539,8 +1538,8 @@ public async Task Provider_services_are_reset(bool useInterface, bool async) var scopedProvider = serviceScope.ServiceProvider; var context1 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); context1!.Database.BeginTransaction(); @@ -1552,8 +1551,8 @@ public async Task Provider_services_are_reset(bool useInterface, bool async) scopedProvider = serviceScope.ServiceProvider; var context2 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); Assert.Same(context1, context2); Assert.Null(context2!.Database.CurrentTransaction); @@ -1568,8 +1567,8 @@ public async Task Provider_services_are_reset(bool useInterface, bool async) scopedProvider = serviceScope.ServiceProvider; var context3 = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); Assert.Same(context2, context3); Assert.Null(context3!.Database.CurrentTransaction); @@ -1900,8 +1899,8 @@ public void Double_dispose_concurrency_test(bool useInterface) var scopedProvider = scope.ServiceProvider; var context = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); var _ = context.Customers.ToList(); @@ -1930,8 +1929,8 @@ async Task ProcessRequest() var scopedProvider = serviceScope.ServiceProvider; var context = useInterface - ? (PooledContext)scopedProvider.GetService() - : scopedProvider.GetService(); + ? (PooledContext)scopedProvider.GetRequiredService() + : scopedProvider.GetRequiredService(); await context!.Customers.AsNoTracking().FirstAsync(c => c.CustomerId == "ALFKI"); diff --git a/test/EFCore.SqlServer.FunctionalTests/DefaultValuesTest.cs b/test/EFCore.SqlServer.FunctionalTests/DefaultValuesTest.cs index 76b66f57da0..e2b0c66dc50 100644 --- a/test/EFCore.SqlServer.FunctionalTests/DefaultValuesTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/DefaultValuesTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DefaultValuesTest : IAsyncLifetime { private readonly IServiceProvider _serviceProvider = new ServiceCollection() @@ -47,10 +45,10 @@ private class ChipsContext(IServiceProvider serviceProvider, string databaseName private readonly string _databaseName = databaseName; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Chips { get; set; } + public DbSet Chips { get; set; } = null!; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Chippers { get; set; } + public DbSet Chippers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -73,19 +71,19 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class KettleChips { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime BestBuyDate { get; set; } - public string ChipperId { get; set; } + public string ChipperId { get; set; } = null!; - public Chipper Manufacturer { get; set; } + public Chipper Manufacturer { get; set; } = null!; } private class Chipper { - public string Id { get; set; } + public string Id { get; set; } = null!; } - protected SqlServerTestStore TestStore { get; private set; } + protected SqlServerTestStore TestStore { get; private set; } = null!; public async ValueTask InitializeAsync() => TestStore = await SqlServerTestStore.CreateInitializedAsync("DefaultValuesTest"); diff --git a/test/EFCore.SqlServer.FunctionalTests/DesignTimeSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/DesignTimeSqlServerTest.cs index 8a9fabe566f..aaea13eb43a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/DesignTimeSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/DesignTimeSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DesignTimeSqlServerTest(DesignTimeSqlServerTest.DesignTimeSqlServerFixture fixture) : DesignTimeTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/EntitySplittingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/EntitySplittingSqlServerTest.cs index a6606196f9a..b5a65bbd01b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/EntitySplittingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/EntitySplittingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class EntitySplittingSqlServerTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : EntitySplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.SqlServer.FunctionalTests/EverythingIsBytesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/EverythingIsBytesSqlServerTest.cs index 5d3bda8b363..fb9f78a7f87 100644 --- a/test/EFCore.SqlServer.FunctionalTests/EverythingIsBytesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/EverythingIsBytesSqlServerTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsNotAzureSql))] public class EverythingIsBytesSqlServerTest(EverythingIsBytesSqlServerTest.EverythingIsBytesSqlServerFixture fixture) : BuiltInDataTypesTestBase(fixture) @@ -109,10 +107,10 @@ public SqlServerBytesTypeMappingSource( { "varbinary", _variableLengthBinary } }; - protected override RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => FindRawMapping(mappingInfo)?.WithTypeMappingInfo(mappingInfo); - private RelationalTypeMapping FindRawMapping(RelationalTypeMappingInfo mappingInfo) + private RelationalTypeMapping? FindRawMapping(RelationalTypeMappingInfo mappingInfo) { var clrType = mappingInfo.ClrType; var storeTypeName = mappingInfo.StoreTypeName; @@ -121,7 +119,7 @@ private RelationalTypeMapping FindRawMapping(RelationalTypeMappingInfo mappingIn if (storeTypeName != null) { if (_storeTypeMappings.TryGetValue(storeTypeName, out var mapping) - || _storeTypeMappings.TryGetValue(storeTypeNameBase, out mapping)) + || _storeTypeMappings.TryGetValue(storeTypeNameBase!, out mapping)) { return clrType == null || mapping.ClrType == clrType diff --git a/test/EFCore.SqlServer.FunctionalTests/EverythingIsStringsSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/EverythingIsStringsSqlServerTest.cs index 4a0399394bb..e5d6cf2fd11 100644 --- a/test/EFCore.SqlServer.FunctionalTests/EverythingIsStringsSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/EverythingIsStringsSqlServerTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsNotAzureSql))] public class EverythingIsStringsSqlServerTest(EverythingIsStringsSqlServerTest.EverythingIsStringsSqlServerFixture fixture) : BuiltInDataTypesTestBase< @@ -116,10 +114,10 @@ public SqlServerStringsTypeMappingSource( { "varchar", _variableLengthAnsiString } }; - protected override RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => FindRawMapping(mappingInfo)?.WithTypeMappingInfo(mappingInfo); - private RelationalTypeMapping FindRawMapping(RelationalTypeMappingInfo mappingInfo) + private RelationalTypeMapping? FindRawMapping(RelationalTypeMappingInfo mappingInfo) { var clrType = mappingInfo.ClrType; var storeTypeName = mappingInfo.StoreTypeName; @@ -128,7 +126,7 @@ private RelationalTypeMapping FindRawMapping(RelationalTypeMappingInfo mappingIn if (storeTypeName != null) { if (_storeTypeMappings.TryGetValue(storeTypeName, out var mapping) - || _storeTypeMappings.TryGetValue(storeTypeNameBase, out mapping)) + || _storeTypeMappings.TryGetValue(storeTypeNameBase!, out mapping)) { return clrType == null || mapping.ClrType == clrType diff --git a/test/EFCore.SqlServer.FunctionalTests/ExecutionStrategyTest.cs b/test/EFCore.SqlServer.FunctionalTests/ExecutionStrategyTest.cs index b28d30f1129..dadf27818f3 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ExecutionStrategyTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ExecutionStrategyTest.cs @@ -9,8 +9,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ExecutionStrategyTest : IClassFixture { public ExecutionStrategyTest(ExecutionStrategyFixture fixture) @@ -247,7 +245,7 @@ public void Handles_commit_failure_multiple_SaveChanges(bool realFailure) c1 => { context2.Database.UseTransaction(null); - context2.Database.UseTransaction(context1.Database.CurrentTransaction.GetDbTransaction()); + context2.Database.UseTransaction(context1.Database.CurrentTransaction!.GetDbTransaction()); c1.SaveChanges(false); @@ -725,19 +723,19 @@ public void Verification_is_retried_using_same_retry_limit() protected class ExecutionStrategyContext(DbContextOptions options) : DbContext(options) { - public DbSet Products { get; set; } - public DbSet Audits { get; set; } + public DbSet Products { get; set; } = null!; + public DbSet Audits { get; set; } = null!; } protected class Product { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } public class AuditContext : DbContext { - public DbSet Audits { get; set; } + public DbSet Audits { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(); diff --git a/test/EFCore.SqlServer.FunctionalTests/F1SqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/F1SqlServerFixture.cs index 3ec4f3a7ccd..88d1cd189e2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/F1SqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/F1SqlServerFixture.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class F1ULongSqlServerFixture : F1SqlServerFixtureBase { protected override string StoreName @@ -73,7 +71,7 @@ protected override void BuildModelExternal(ModelBuilder modelBuilder) public class OptimisticOptionalChild { public Guid Id { get; set; } - public ICollection Parents { get; set; } + public ICollection Parents { get; set; } = null!; [Timestamp] public long Version { get; set; } @@ -82,7 +80,7 @@ public class OptimisticOptionalChild public class OptimisticParent { public Guid Id { get; set; } - public OptimisticOptionalChild OptionalChild { get; set; } + public OptimisticOptionalChild? OptionalChild { get; set; } } } @@ -133,13 +131,13 @@ protected override void BuildModelExternal(ModelBuilder modelBuilder) } private class BinaryVersionConverter() : ValueConverter, byte[]>( - v => v == null ? null : v.ToArray(), - v => v == null ? null : v.ToList()); + v => v == null ? null! : v.ToArray(), + v => v == null ? null! : v.ToList()); private class BinaryVersionComparer() : ValueComparer>( (l, r) => (l == null && r == null) || (l != null && r != null && l.SequenceEqual(r)), v => CalculateHashCode(v), - v => v == null ? null : v.ToList()) + v => v == null ? null! : v.ToList()) { private static int CalculateHashCode(List source) { diff --git a/test/EFCore.SqlServer.FunctionalTests/FieldMappingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/FieldMappingSqlServerTest.cs index 22a61c84ec4..2472f1e2cf2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/FieldMappingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/FieldMappingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class FieldMappingSqlServerTest(FieldMappingSqlServerTest.FieldMappingSqlServerFixture fixture) : FieldMappingTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/FieldsOnlyLoadSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/FieldsOnlyLoadSqlServerTest.cs index eb4ba3c7968..f36f4867d6c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/FieldsOnlyLoadSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/FieldsOnlyLoadSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class FieldsOnlyLoadSqlServerTest(FieldsOnlyLoadSqlServerTest.FieldsOnlyLoadSqlServerFixture fixture) : FieldsOnlyLoadTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/FindSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/FindSqlServerTest.cs index bfb0c1f8873..7721eefaf66 100644 --- a/test/EFCore.SqlServer.FunctionalTests/FindSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/FindSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class FindSqlServerTest : FindTestBase { protected FindSqlServerTest(FindSqlServerFixture fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientCascadeTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientCascadeTest.cs index 548d1fcf94c..75c79afc475 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientCascadeTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientCascadeTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerClientCascadeTest(GraphUpdatesSqlServerClientCascadeTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase< GraphUpdatesSqlServerClientCascadeTest.SqlServerFixture>(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientNoActionTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientNoActionTest.cs index 8864ab7143a..b9e72d1153e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientNoActionTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerClientNoActionTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerClientNoActionTest(GraphUpdatesSqlServerClientNoActionTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase< GraphUpdatesSqlServerClientNoActionTest.SqlServerFixture>(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerHiLoTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerHiLoTest.cs index bde99583153..ac26909085d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerHiLoTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerHiLoTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerHiLoTest(GraphUpdatesSqlServerHiLoTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerIdentityTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerIdentityTest.cs index 5cda53cab07..96e13f1b1c3 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerIdentityTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerIdentityTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerIdentityTest(GraphUpdatesSqlServerIdentityTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerOwnedTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerOwnedTest.cs index ae965067abe..59c9628f670 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerOwnedTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerOwnedTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerOwnedTest(GraphUpdatesSqlServerOwnedTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase(fixture) { @@ -352,7 +350,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con v => v.Value, v => new MyDiscriminator(v), new ValueComparer( - (l, r) => l.Value == r.Value, + (l, r) => l!.Value == r!.Value, v => v.Value.GetHashCode(), v => new MyDiscriminator(v.Value))) .Metadata diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerSequenceTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerSequenceTest.cs index 2693329222b..75a90efb503 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerSequenceTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerSequenceTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerSequenceTest(GraphUpdatesSqlServerSequenceTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTestBase.cs index 718a5273c32..d5fdadd2e07 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTestBase.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class GraphUpdatesSqlServerTestBase(TFixture fixture) : GraphUpdatesTestBase(fixture) where TFixture : GraphUpdatesSqlServerTestBase.GraphUpdatesSqlServerFixtureBase, new() { @@ -63,29 +61,29 @@ protected class StringKeyAndIndexParent : NotifyingEntity { public string Id { - get; + get => field!; set => SetWithNotify(value, ref field); } public string AlternateId { - get; + get => field!; set => SetWithNotify(value, ref field); } - public string Index + public string? Index { get; set => SetWithNotify(value, ref field); } - public string UniqueIndex + public string? UniqueIndex { get; set => SetWithNotify(value, ref field); } - public StringKeyAndIndexChild Child + public StringKeyAndIndexChild? Child { get; set => SetWithNotify(value, ref field); @@ -96,11 +94,11 @@ protected class StringKeyAndIndexChild : NotifyingEntity { public string Id { - get; + get => field!; set => SetWithNotify(value, ref field); } - public string ParentId + public string? ParentId { get; set => SetWithNotify(value, ref field); @@ -112,7 +110,7 @@ public int Foo set => SetWithNotify(value, ref field); } - public StringKeyAndIndexParent Parent + public StringKeyAndIndexParent? Parent { get; set => SetWithNotify(value, ref field); @@ -207,7 +205,7 @@ public virtual ICollection Children protected class ChildWithSetDefault : NotifyingEntity { - private ParentWithSetDefault _parent; + private ParentWithSetDefault _parent = null!; public int Id { diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTptIdentityTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTptIdentityTest.cs index 35e7cb1e538..3194e92024f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTptIdentityTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/GraphUpdatesSqlServerTptIdentityTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqlServerTptIdentityTest(GraphUpdatesSqlServerTptIdentityTest.SqlServerFixture fixture) : GraphUpdatesSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqlServerTest.cs index 9354694e2a1..63e0e6d558e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class ProxyGraphUpdatesSqlServerTest { public abstract class ProxyGraphUpdatesSqlServerTestBase(TFixture fixture) : ProxyGraphUpdatesTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/KeysWithConvertersSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/KeysWithConvertersSqlServerTest.cs index 5ad0ab1835d..b264e29dec1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/KeysWithConvertersSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/KeysWithConvertersSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class KeysWithConvertersSqlServerTest(KeysWithConvertersSqlServerTest.KeysWithConvertersSqlServerFixture fixture) : KeysWithConvertersTestBase< KeysWithConvertersSqlServerTest.KeysWithConvertersSqlServerFixture>(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/LazyLoadProxySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/LazyLoadProxySqlServerTest.cs index f871c23222a..05b07d7db56 100644 --- a/test/EFCore.SqlServer.FunctionalTests/LazyLoadProxySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/LazyLoadProxySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LazyLoadProxySqlServerTest : LazyLoadProxyRelationalTestBase { public LazyLoadProxySqlServerTest(LoadSqlServerFixture fixture) @@ -529,7 +527,7 @@ protected override void RecordLog() private void AssertSql(params string[] expected) => Fixture.TestSqlLoggerFactory.AssertBaseline(expected); - private string Sql { get; set; } + private string? Sql { get; set; } public class LoadSqlServerFixture : LoadRelationalFixtureBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/LoadSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/LoadSqlServerTest.cs index 81d041a6ca2..82bfa051cc7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/LoadSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/LoadSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LoadSqlServerTest : LoadTestBase { public LoadSqlServerTest(LoadSqlServerFixture fixture) @@ -1797,7 +1795,7 @@ protected override void RecordLog() private const string FileNewLine = @" "; - private void AssertSql(string expected = null) + private void AssertSql(string? expected = null) { var sql = Sql ?? ""; expected ??= ""; @@ -1840,7 +1838,7 @@ private void AssertSql(string expected = null) } } - private string Sql { get; set; } + private string? Sql { get; set; } public class LoadSqlServerFixture : LoadFixtureBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/LoggingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/LoggingSqlServerTest.cs index c60897dac9e..b4a058942db 100644 --- a/test/EFCore.SqlServer.FunctionalTests/LoggingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/LoggingSqlServerTest.cs @@ -8,8 +8,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LoggingSqlServerTest : LoggingRelationalTestBase { [Fact] @@ -45,7 +43,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) protected override DbContextOptionsBuilder CreateOptionsBuilder( IServiceCollection services, - Action> relationalAction) + Action>? relationalAction) => new DbContextOptionsBuilder() .UseInternalServiceProvider(services.AddEntityFrameworkSqlServer().BuildServiceProvider(validateScopes: true)) .UseSqlServer("Data Source=LoggingSqlServerTest.db", relationalAction); @@ -58,7 +56,7 @@ protected override string ProviderName protected override string ProviderVersion => typeof(SqlServerOptionsExtension).Assembly - .GetCustomAttribute()?.InformationalVersion; + .GetCustomAttribute()!.InformationalVersion; protected override string DefaultOptions => "EngineType=SqlServer "; diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyFieldsLoadSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyFieldsLoadSqlServerTest.cs index 5f6346df2b6..50493ec1282 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyFieldsLoadSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyFieldsLoadSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyFieldsLoadSqlServerTest(ManyToManyFieldsLoadSqlServerTest.ManyToManyFieldsLoadSqlServerFixture fixture) : ManyToManyFieldsLoadTestBase< ManyToManyFieldsLoadSqlServerTest.ManyToManyFieldsLoadSqlServerFixture>(fixture) @@ -256,7 +254,7 @@ private void AssertSql(string expected) var testInfo = testName + " : " + lineNumber + FileNewLine; var newBaseLine = $@" AssertSql( - {"@\"" + Sql.Replace("\"", "\"\"") + "\""}); + {"@\"" + Sql!.Replace("\"", "\"\"") + "\""}); "; @@ -268,7 +266,7 @@ private void AssertSql(string expected) } } - private string Sql { get; set; } + private string? Sql { get; set; } public class ManyToManyFieldsLoadSqlServerFixture : ManyToManyFieldsLoadFixtureBase, ITestSqlLoggerFactory { diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyLoadSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyLoadSqlServerTest.cs index f27f5574541..d4b88434e26 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyLoadSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyLoadSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyLoadSqlServerTest(ManyToManyLoadSqlServerTest.ManyToManyLoadSqlServerFixture fixture) : ManyToManyLoadTestBase(fixture) { @@ -275,7 +273,7 @@ private void AssertSql(string expected) var testInfo = testName + " : " + lineNumber + FileNewLine; var newBaseLine = $@" AssertSql( - {"@\"" + Sql.Replace("\"", "\"\"") + "\""}); + {"@\"" + Sql!.Replace("\"", "\"\"") + "\""}); "; @@ -287,7 +285,7 @@ private void AssertSql(string expected) } } - private string Sql { get; set; } + private string? Sql { get; set; } public class ManyToManyLoadSqlServerFixture : ManyToManyLoadFixtureBase, ITestSqlLoggerFactory { diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingGeneratedKeysSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingGeneratedKeysSqlServerTest.cs index b54c5563c4b..ce839df5bf5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingGeneratedKeysSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingGeneratedKeysSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyTrackingGeneratedKeysSqlServerTest( ManyToManyTrackingGeneratedKeysSqlServerTest.ManyToManyTrackingGeneratedKeysSqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase( diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxyGeneratedKeysSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxyGeneratedKeysSqlServerTest.cs index b62e479db49..5b68087087f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxyGeneratedKeysSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxyGeneratedKeysSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyTrackingProxyGeneratedKeysSqlServerTest( ManyToManyTrackingProxyGeneratedKeysSqlServerTest.ManyToManyTrackingProxyGeneratedKeysSqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase< diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxySqlServerTest.cs index fc6ed6a3681..3384c70fd13 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingProxySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyTrackingProxySqlServerTest(ManyToManyTrackingProxySqlServerTest.ManyToManyTrackingProxySqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTest.cs index 7b37b531bd8..11fc4a5f6dc 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyTrackingSqlServerTest(ManyToManyTrackingSqlServerTest.ManyToManyTrackingSqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTestBase.cs index 86923de6e55..28900f2e704 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ManyToManyTrackingSqlServerTestBase.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class ManyToManyTrackingSqlServerTestBase(TFixture fixture) : ManyToManyTrackingRelationalTestBase(fixture) where TFixture : ManyToManyTrackingSqlServerTestBase.ManyToManyTrackingSqlServerFixtureBase diff --git a/test/EFCore.SqlServer.FunctionalTests/MemoryOptimizedTablesTest.cs b/test/EFCore.SqlServer.FunctionalTests/MemoryOptimizedTablesTest.cs index a2368b82d52..f5b61ae273b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/MemoryOptimizedTablesTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/MemoryOptimizedTablesTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsMemoryOptimizedTablesSupported))] public class MemoryOptimizedTablesTest(MemoryOptimizedTablesTest.MemoryOptimizedTablesFixture fixture) : IClassFixture @@ -40,7 +38,7 @@ public async Task Can_create_memoryOptimized_table() } } - protected TestStore TestStore { get; set; } + protected TestStore TestStore { get; set; } = null!; protected Task CreateTestStoreAsync() { @@ -59,7 +57,7 @@ protected override ITestStoreFactory TestStoreFactory private class MemoryOptimizedContext(DbContextOptions options) : DbContext(options) { - public DbSet FastUns { get; set; } + public DbSet FastUns { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -78,13 +76,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class BigUn { public int Id { get; set; } - public ICollection FastUns { get; set; } + public ICollection FastUns { get; set; } = null!; } private class FastUn { public int Id { get; set; } - public string Name { get; set; } - public BigUn BigUn { get; set; } + public string Name { get; set; } = null!; + public BigUn BigUn { get; set; } = null!; } } diff --git a/test/EFCore.SqlServer.FunctionalTests/Migrations/MigrationsInfrastructureSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Migrations/MigrationsInfrastructureSqlServerTest.cs index d6c90564b6a..9d4051491ee 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Migrations/MigrationsInfrastructureSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Migrations/MigrationsInfrastructureSqlServerTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using Identity30.Data; using Microsoft.EntityFrameworkCore.Diagnostics.Internal; using Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal; @@ -699,7 +697,7 @@ public void Throws_when_no_migrations() CoreStrings.WarningAsErrorTemplate( RelationalEventId.MigrationsNotFound.ToString(), RelationalResources.LogNoMigrationsFound(new TestLogger()) - .GenerateMessage(typeof(DbContext).Assembly.GetName().Name), + .GenerateMessage(typeof(DbContext).Assembly.GetName().Name!), "RelationalEventId.MigrationsNotFound"), Assert.Throws(context.Database.Migrate).Message); } @@ -718,7 +716,7 @@ public async Task Throws_when_no_migrations_async() CoreStrings.WarningAsErrorTemplate( RelationalEventId.MigrationsNotFound.ToString(), RelationalResources.LogNoMigrationsFound(new TestLogger()) - .GenerateMessage(typeof(DbContext).Assembly.GetName().Name), + .GenerateMessage(typeof(DbContext).Assembly.GetName().Name!), "RelationalEventId.MigrationsNotFound"), (await Assert.ThrowsAsync(() => context.Database.MigrateAsync())).Message); } @@ -738,7 +736,7 @@ public void Throws_when_no_snapshot() CoreStrings.WarningAsErrorTemplate( RelationalEventId.ModelSnapshotNotFound.ToString(), RelationalResources.LogNoModelSnapshotFound(new TestLogger()) - .GenerateMessage(typeof(MigrationsContext).Assembly.GetName().Name), + .GenerateMessage(typeof(MigrationsContext).Assembly.GetName().Name!), "RelationalEventId.ModelSnapshotNotFound"), Assert.Throws(context.Database.Migrate).Message); } @@ -758,7 +756,7 @@ public async Task Throws_when_no_snapshot_async() CoreStrings.WarningAsErrorTemplate( RelationalEventId.ModelSnapshotNotFound.ToString(), RelationalResources.LogNoModelSnapshotFound(new TestLogger()) - .GenerateMessage(typeof(MigrationsContext).Assembly.GetName().Name), + .GenerateMessage(typeof(MigrationsContext).Assembly.GetName().Name!), "RelationalEventId.ModelSnapshotNotFound"), (await Assert.ThrowsAsync(() => context.Database.MigrateAsync())).Message); } @@ -1088,7 +1086,7 @@ SELECT @result private class BloggingContext(DbContextOptions options, bool? randomData = null) : DbContext(options) { // ReSharper disable once UnusedMember.Local - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; // ReSharper disable once ClassNeverInstantiated.Local public class Blog @@ -1096,7 +1094,7 @@ public class Blog // ReSharper disable UnusedMember.Local public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } // ReSharper restore UnusedMember.Local } @@ -2024,19 +2022,19 @@ namespace ModelSnapshot22 public class Blog { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public ICollection Posts { get; set; } + public ICollection Posts { get; set; } = null!; } public class Post { public int Id { get; set; } - public string Title { get; set; } - public string Content { get; set; } + public string? Title { get; set; } + public string? Content { get; set; } public DateTime EditDate { get; set; } - public Blog Blog { get; set; } + public Blog? Blog { get; set; } } public class BloggingContext : DbContext @@ -2044,7 +2042,7 @@ public class BloggingContext : DbContext protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test;ConnectRetryCount=0"); - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity().HasData( diff --git a/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs b/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs index f741489225f..5d555f11e08 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Migrations/SqlServerMigrationsSqlGeneratorTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Migrations; -#nullable disable - public class SqlServerMigrationsSqlGeneratorTest() : MigrationsSqlGeneratorTestBase( SqlServerTestHelpers.Instance, new ServiceCollection().AddEntityFrameworkSqlServerNetTopologySuite(), diff --git a/test/EFCore.SqlServer.FunctionalTests/ModelBuilding101SqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/ModelBuilding101SqlServerTest.cs index 26a42d3b3cb..b0cfbed036e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/ModelBuilding101SqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/ModelBuilding101SqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ModelBuilding101SqlServerTest : ModelBuilding101RelationalTestBase { protected override DbContextOptionsBuilder ConfigureContext(DbContextOptionsBuilder optionsBuilder) diff --git a/test/EFCore.SqlServer.FunctionalTests/MonsterFixupChangedChangingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/MonsterFixupChangedChangingSqlServerTest.cs index 5a122723726..5794c0683f4 100644 --- a/test/EFCore.SqlServer.FunctionalTests/MonsterFixupChangedChangingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/MonsterFixupChangedChangingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class MonsterFixupChangedChangingSqlServerTest( MonsterFixupChangedChangingSqlServerTest.MonsterFixupChangedChangingSqlServerFixture fixture) : MonsterFixupTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/MusicStoreSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/MusicStoreSqlServerTest.cs index c5913da5417..d9629ba7065 100644 --- a/test/EFCore.SqlServer.FunctionalTests/MusicStoreSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/MusicStoreSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class MusicStoreSqlServerTest(MusicStoreSqlServerTest.MusicStoreSqlServerFixture fixture) : MusicStoreTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/NavigationTest.cs b/test/EFCore.SqlServer.FunctionalTests/NavigationTest.cs index 8422a6dc004..808d6e1e91c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/NavigationTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/NavigationTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class NavigationTest(NavigationTestFixture fixture) : IClassFixture { [Fact] @@ -61,18 +59,18 @@ public void Duplicate_entries_are_not_created_for_navigations_to_dependent() public class GoTPerson { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public List Siblings { get; set; } - public GoTPerson Lover { get; set; } - public GoTPerson LoverReverse { get; set; } - public GoTPerson SiblingReverse { get; set; } + public List Siblings { get; set; } = null!; + public GoTPerson? Lover { get; set; } + public GoTPerson? LoverReverse { get; set; } + public GoTPerson? SiblingReverse { get; set; } } public class GoTContext(DbContextOptions options) : DbContext(options) { - public DbSet People { get; set; } - public Func ConfigAction { get; set; } + public DbSet People { get; set; } = null!; + public Func ConfigAction { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigAction.Invoke(modelBuilder); diff --git a/test/EFCore.SqlServer.FunctionalTests/NotificationEntitiesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/NotificationEntitiesSqlServerTest.cs index 87a33ab13a4..e0eb9adb7eb 100644 --- a/test/EFCore.SqlServer.FunctionalTests/NotificationEntitiesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/NotificationEntitiesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class NotificationEntitiesSqlServerTest(NotificationEntitiesSqlServerTest.NotificationEntitiesSqlServerFixture fixture) : NotificationEntitiesTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/OptimisticConcurrencySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/OptimisticConcurrencySqlServerTest.cs index c1f07c40699..2cf339f8ffd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/OptimisticConcurrencySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/OptimisticConcurrencySqlServerTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OptimisticConcurrencyULongSqlServerTest(F1ULongSqlServerFixture fixture) : OptimisticConcurrencySqlServerTestBase(fixture) { @@ -354,7 +352,7 @@ await c.Database.CreateExecutionStrategy().ExecuteAsync( using var transaction = context.Database.BeginTransaction(); var sponsor = context.Set().Single(); var sponsorEntry = c.Entry(sponsor); - var detailsEntry = sponsorEntry.Reference(s => s.Details).TargetEntry; + var detailsEntry = sponsorEntry.Reference(s => s.Details).TargetEntry!; var sponsorVersion = sponsorEntry.Property("Version").CurrentValue; var detailsVersion = detailsEntry.Property("Version").CurrentValue; @@ -397,7 +395,7 @@ await c.Database.CreateExecutionStrategy().ExecuteAsync( context.ChangeTracker.DetectChanges(); - var detailsEntry = sponsorEntry.Reference(s => s.Details).TargetEntry; + var detailsEntry = sponsorEntry.Reference(s => s.Details).TargetEntry!; detailsEntry.Property(Sponsor.ClientTokenPropertyName).CurrentValue = 1; await context.SaveChangesAsync(); diff --git a/test/EFCore.SqlServer.FunctionalTests/OverzealousInitializationSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/OverzealousInitializationSqlServerTest.cs index a224f14ec3b..8018ed8d653 100644 --- a/test/EFCore.SqlServer.FunctionalTests/OverzealousInitializationSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/OverzealousInitializationSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OverzealousInitializationSqlServerTest( OverzealousInitializationSqlServerTest.OverzealousInitializationSqlServerFixture fixture) : OverzealousInitializationTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/PropertyValuesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/PropertyValuesSqlServerTest.cs index 70061bda7c7..966a7e292e6 100644 --- a/test/EFCore.SqlServer.FunctionalTests/PropertyValuesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/PropertyValuesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class PropertyValuesSqlServerTest(PropertyValuesSqlServerTest.PropertyValuesSqlServerFixture fixture) : PropertyValuesRelationalTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqlServerTest.cs index af43521d1d0..910a6114138 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocAdvancedMappingsQuerySqlServerTest(NonSharedFixture fixture) : AdHocAdvancedMappingsQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocMiscellaneousQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocMiscellaneousQuerySqlServerTest.cs index edb9bfe9ebd..3e90d29670b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocMiscellaneousQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocMiscellaneousQuerySqlServerTest.cs @@ -12,8 +12,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocMiscellaneousQuerySqlServerTest(NonSharedFixture fixture) : AdHocMiscellaneousQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -67,7 +65,7 @@ public virtual async Task Include_group_join_is_per_query_context() 0, 10, i => { using var ctx = contextFactory.CreateDbContext(); - var result = ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).ToList(); + var result = ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).ToList(); Assert.Equal(198, result.Count); }); @@ -76,7 +74,7 @@ public virtual async Task Include_group_join_is_per_query_context() 0, 10, i => { using var ctx = contextFactory.CreateDbContext(); - var result = ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).Include(x => x.Comments).ToList(); + var result = ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).Include(x => x.Comments).ToList(); Assert.Equal(198, result.Count); }); @@ -85,7 +83,7 @@ public virtual async Task Include_group_join_is_per_query_context() 0, 10, i => { using var ctx = contextFactory.CreateDbContext(); - var result = ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).ThenInclude(b => b.Author).ToList(); + var result = ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).ThenInclude(b => b!.Author).ToList(); Assert.Equal(198, result.Count); }); @@ -102,7 +100,7 @@ await Parallel.ForAsync( 0, 10, async (i, ct) => { using var ctx = contextFactory.CreateDbContext(); - var result = await ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).ToListAsync(); + var result = await ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).ToListAsync(); Assert.Equal(198, result.Count); }); @@ -111,7 +109,7 @@ await Parallel.ForAsync( 0, 10, async (i, ct) => { using var ctx = contextFactory.CreateDbContext(); - var result = await ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).Include(x => x.Comments) + var result = await ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).Include(x => x.Comments) .ToListAsync(); Assert.Equal(198, result.Count); @@ -121,7 +119,7 @@ await Parallel.ForAsync( 0, 10, async (i, ct) => { using var ctx = contextFactory.CreateDbContext(); - var result = await ctx.Posts.Where(x => x.Blog.Id > 1).Include(x => x.Blog).ThenInclude(b => b.Author) + var result = await ctx.Posts.Where(x => x.Blog!.Id > 1).Include(x => x.Blog).ThenInclude(b => b!.Author) .ToListAsync(); Assert.Equal(198, result.Count); @@ -131,10 +129,10 @@ await Parallel.ForAsync( // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context5456(DbContextOptions options) : DbContext(options) { - public DbSet Blogs { get; set; } - public DbSet Posts { get; set; } - public DbSet Comments { get; set; } - public DbSet Authors { get; set; } + public DbSet Blogs { get; set; } = null!; + public DbSet Posts { get; set; } = null!; + public DbSet Comments { get; set; } = null!; + public DbSet Authors { get; set; } = null!; public Task SeedAsync() { @@ -150,27 +148,27 @@ public Task SeedAsync() public class Blog { public int Id { get; set; } - public List Posts { get; set; } - public Author Author { get; set; } + public List Posts { get; set; } = null!; + public Author? Author { get; set; } } public class Author { public int Id { get; set; } - public List Blogs { get; set; } + public List Blogs { get; set; } = null!; } public class Post { public int Id { get; set; } - public Blog Blog { get; set; } - public List Comments { get; set; } + public Blog? Blog { get; set; } + public List Comments { get; set; } = null!; } public class Comment { public int Id { get; set; } - public Post Blog { get; set; } + public Post? Blog { get; set; } } } @@ -223,7 +221,7 @@ FROM [Customers] AS [c] // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context8864(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; public Task SeedAsync() { @@ -240,7 +238,7 @@ public static Customer Get(Context8864 context, int id) public class Customer { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } } @@ -285,7 +283,7 @@ FROM [foo].[Widgets] AS [w] protected class Context9214(DbContextOptions options) : DbContext(options) { - public DbSet Widgets { get; set; } + public DbSet Widgets { get; set; } = null!; #pragma warning disable IDE0060 // Remove unused parameter public static int AddOne(int num) @@ -303,8 +301,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().ToTable("Widgets", "foo"); - modelBuilder.HasDbFunction(typeof(Context9214).GetMethod(nameof(AddOne))); - modelBuilder.HasDbFunction(typeof(Context9214).GetMethod(nameof(AddTwo))).HasSchema("dbo"); + modelBuilder.HasDbFunction(typeof(Context9214).GetMethod(nameof(AddOne))!); + modelBuilder.HasDbFunction(typeof(Context9214).GetMethod(nameof(AddTwo))!).HasSchema("dbo"); } public async Task SeedAsync() @@ -375,7 +373,7 @@ public virtual async Task From_sql_gets_value_of_out_parameter_in_stored_procedu protected class Context9277(DbContextOptions options) : DbContext(options) { - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; public async Task SeedAsync() { @@ -455,7 +453,7 @@ WHEN NOT MATCHED THEN // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context12482(DbContextOptions options) : DbContext(options) { - public virtual DbSet BaseEntities { get; set; } + public virtual DbSet BaseEntities { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(); @@ -465,7 +463,7 @@ public class BaseEntity public int Id { get; set; } [Column(TypeName = "sql_variant")] - public object Value { get; set; } + public object? Value { get; set; } } } @@ -494,7 +492,7 @@ public virtual async Task Projecting_column_with_value_converter_of_ulong_byte_a { var contextFactory = await InitializeNonSharedTest(seed: c => c.SeedAsync()); using var context = contextFactory.CreateDbContext(); - var result = context.Parents.OrderBy(e => e.Id).Select(p => (ulong?)p.Child.ULongRowVersion).FirstOrDefault(); + var result = context.Parents.OrderBy(e => e.Id).Select(p => (ulong?)p.Child!.ULongRowVersion).FirstOrDefault(); AssertSql( """ @@ -507,8 +505,8 @@ ORDER BY [p].[Id] protected class Context12518(DbContextOptions options) : DbContext(options) { - public virtual DbSet Parents { get; set; } - public virtual DbSet Children { get; set; } + public virtual DbSet Parents { get; set; } = null!; + public virtual DbSet Children { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -535,7 +533,7 @@ public class Parent12518 { public Guid Id { get; set; } = Guid.NewGuid(); public Guid? ChildId { get; set; } - public Child12518 Child { get; set; } + public Child12518? Child { get; set; } } public class Child12518 @@ -543,7 +541,7 @@ public class Child12518 public Guid Id { get; set; } = Guid.NewGuid(); public ulong ULongRowVersion { get; set; } public Guid ParentId { get; set; } - public Parent12518 Parent { get; set; } + public Parent12518? Parent { get; set; } } } @@ -576,7 +574,7 @@ FROM [ReproEntity] AS [r] // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context13118(DbContextOptions options) : DbContext(options) { - public virtual DbSet ReproEntity { get; set; } + public virtual DbSet ReproEntity { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(e => e.Property("MyTime").HasColumnType("smalldatetime")); @@ -953,7 +951,7 @@ WHERE [d].[SmallDateTime] IN (@dateTimes1, @dateTimes2, @dateTimes3, @dateTimes4 protected class Context14095(DbContextOptions options) : DbContext(options) { - public DbSet Dates { get; set; } + public DbSet Dates { get; set; } = null!; public Task SeedAsync() { @@ -1096,7 +1094,7 @@ ORDER BY [r].[Id] // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context15518(DbContextOptions options) : DbContext(options) { - public DbSet Repos { get; set; } + public DbSet Repos { get; set; } = null!; public Task SeedAsync() { @@ -1110,7 +1108,7 @@ public Task SeedAsync() public class Repo { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } } @@ -1154,7 +1152,7 @@ CROSS JOIN ( // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context19206(DbContextOptions options) : DbContext(options) { - public DbSet Tests { get; set; } + public DbSet Tests { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1189,7 +1187,7 @@ public virtual async Task Thread_safety_in_relational_command_cache() { var contextFactory = await InitializeNonSharedTest( onConfiguring: options => ((IDbContextOptionsBuilderInfrastructure)options).AddOrUpdateExtension( - options.Options.FindExtension() + options.Options.FindExtension()! .WithConnection(null) .WithConnectionString(SqlServerTestStore.CreateConnectionString(NonSharedStoreName)))); @@ -1207,7 +1205,7 @@ public virtual async Task Thread_safety_in_relational_command_cache() // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context21666(DbContextOptions options) : DbContext(options) { - public DbSet Lists { get; set; } + public DbSet Lists { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1248,7 +1246,7 @@ FROM [Locations] AS [l] // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context23282(DbContextOptions options) : DbContext(options) { - public DbSet Locations { get; set; } + public DbSet Locations { get; set; } = null!; public Task SeedAsync() { @@ -1271,14 +1269,14 @@ public Task SeedAsync() [Owned] public class Address { - public string Line1 { get; set; } - public string Line2 { get; set; } - public string Town { get; set; } - public string County { get; set; } - public string Postcode { get; set; } + public string? Line1 { get; set; } + public string? Line2 { get; set; } + public string? Town { get; set; } + public string? County { get; set; } + public string? Postcode { get; set; } public int Value { get; set; } - public Point Point { get; set; } + public Point? Point { get; set; } } public class Location @@ -1286,8 +1284,8 @@ public class Location [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } - public string Name { get; set; } - public Address Address { get; set; } + public string? Name { get; set; } + public Address? Address { get; set; } } } @@ -1356,7 +1354,7 @@ protected class Gender24216 { public long Id { get; set; } - public string Description { get; set; } + public string? Description { get; set; } } protected class Message24216 @@ -1376,14 +1374,14 @@ protected class PersonStatus24216 public long GenderId { get; set; } - public string StatusMessage { get; set; } + public string? StatusMessage { get; set; } } // Protected so that it can be used by inheriting tests, and so that things like unused setters are not removed. protected class Context24216(DbContextOptions options) : DbContext(options) { - public DbSet Gender { get; set; } - public DbSet Message { get; set; } + public DbSet Gender { get; set; } = null!; + public DbSet Message { get; set; } = null!; public IQueryable GetPersonStatusAsOf(long personId, DateTime asOf) => FromExpression(() => GetPersonStatusAsOf(personId, asOf)); @@ -1395,7 +1393,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.HasDbFunction( typeof(Context24216).GetMethod( nameof(GetPersonStatusAsOf), - [typeof(long), typeof(DateTime)])); + [typeof(long), typeof(DateTime)])!); } } @@ -1444,7 +1442,7 @@ GROUP BY [d].[Id] protected class Context27427(DbContextOptions options) : DbContext(options) { - public DbSet DemoEntities { get; set; } + public DbSet DemoEntities { get; set; } = null!; } protected class DemoEntity @@ -1544,7 +1542,7 @@ public virtual async Task TemporalAsOf_project_json_entity_collection(bool async protected class Context30478(DbContextOptions options) : DbContext(options) { - public DbSet Entities { get; set; } + public DbSet Entities { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1616,15 +1614,15 @@ await Database.ExecuteSqlRawAsync( protected class Entity30478 { public int Id { get; set; } - public string Name { get; set; } - public Json30478 Reference { get; set; } - public List Collection { get; set; } + public string? Name { get; set; } + public Json30478? Reference { get; set; } + public List Collection { get; set; } = null!; } protected class Json30478 { - public string Name { get; set; } - public JsonNested30478 Nested { get; set; } + public string? Name { get; set; } + public JsonNested30478? Nested { get; set; } } protected class JsonNested30478 @@ -2644,7 +2642,7 @@ public virtual async Task SqlFragment_within_GroupBy_subquery_pushdown() protected class Context37327(DbContextOptions options) : DbContext(options) { - public DbSet WorkUnits { get; set; } + public DbSet WorkUnits { get; set; } = null!; public class WorkUnit { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocNavigationsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocNavigationsQuerySqlServerTest.cs index 062378e03f5..9de4769b5ae 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocNavigationsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocNavigationsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocNavigationsQuerySqlServerTest(NonSharedFixture fixture) : AdHocNavigationsQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -69,7 +67,7 @@ ORDER BY [b].[Id] protected class Context10447(DbContextOptions options) : DbContext(options) { - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -96,14 +94,14 @@ public Task SeedAsync() public class Blog { public int Id { get; set; } - public List Posts { get; set; } + public List Posts { get; set; } = null!; } public class Post { public int Id { get; set; } - public Blog Blog { get; set; } + public Blog? Blog { get; set; } } } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQueryFiltersQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQueryFiltersQuerySqlServerTest.cs index 557b048d13f..6e7aab96e46 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQueryFiltersQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQueryFiltersQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocQueryFiltersQuerySqlServerTest(NonSharedFixture fixture) : AdHocQueryFiltersQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -143,13 +141,13 @@ FROM [Leaders] AS [l] protected class Context11803(DbContextOptions options) : DbContext(options) { - public DbSet Factions { get; set; } - public DbSet Leaders { get; set; } - public DbSet LeadersQuery { get; set; } + public DbSet Factions { get; set; } = null!; + public DbSet Leaders { get; set; } = null!; + public DbSet LeadersQuery { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { - modelBuilder.Entity().HasQueryFilter(l => l.Name.StartsWith("Bran")); // this one is ignored + modelBuilder.Entity().HasQueryFilter(l => l.Name!.StartsWith("Bran")); // this one is ignored modelBuilder.Entity().HasQueryFilter(f => Leaders.Any(l => l.Name == "Crach an Craite")); modelBuilder @@ -189,21 +187,21 @@ public Task SeedAsync() public class Faction11803 { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public List Leaders { get; set; } + public List Leaders { get; set; } = null!; } public class Leader11803 { public int Id { get; set; } - public string Name { get; set; } - public Faction11803 Faction { get; set; } + public string? Name { get; set; } + public Faction11803? Faction { get; set; } } public class LeaderQuery11803 { - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQuerySplittingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQuerySplittingQuerySqlServerTest.cs index 97e935885c2..fdb6da6d4a1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQuerySplittingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/AdHocQuerySplittingQuerySqlServerTest.cs @@ -5,15 +5,13 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocQuerySplittingQuerySqlServerTest(NonSharedFixture fixture) : AdHocQuerySplittingQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory => SqlServerTestStoreFactory.Instance; private static readonly FieldInfo _querySplittingBehaviorFieldInfo = - typeof(RelationalOptionsExtension).GetField("_querySplittingBehavior", BindingFlags.NonPublic | BindingFlags.Instance); + typeof(RelationalOptionsExtension).GetField("_querySplittingBehavior", BindingFlags.NonPublic | BindingFlags.Instance)!; protected override DbContextOptionsBuilder SetQuerySplittingBehavior( DbContextOptionsBuilder optionsBuilder, diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqlServerTest.cs index 569473bea9e..10c71974f33 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsQuerySqlServerTest : ComplexNavigationsCollectionsQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs index 3a1a071d7ad..3cb231a0846 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSharedTypeQuerySqlServerTest : ComplexNavigationsCollectionsSharedTypeQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqlServerTest.cs index 59cebb2d444..098b19adf71 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSplitQuerySqlServerTest : ComplexNavigationsCollectionsSplitQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqlServerTest.cs index 8cb95223558..bf42f2afaae 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSplitSharedTypeQuerySqlServerTest : ComplexNavigationsCollectionsSplitSharedTypeQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerFixture.cs index 57fa8dce201..7c002fc57eb 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsQuerySqlServerFixture : ComplexNavigationsQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerTest.cs index dfe58c4c12e..291ba90ab70 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsQuerySqlServerTest : ComplexNavigationsQueryRelationalTestBase { public ComplexNavigationsQuerySqlServerTest( @@ -30,7 +28,7 @@ await AssertQuery( ss => from l1 in ss.Set() where l1.Id < 3 select (from l3 in ss.Set() - select l3).Distinct().Skip(1).OrderBy(e => e.Id).FirstOrDefault().Name); + select l3).Distinct().Skip(1).OrderBy(e => e.Id).FirstOrDefault()!.Name); AssertSql( """ @@ -59,7 +57,7 @@ await AssertQuery( ss => from l1 in ss.Set() where l1.Id < 3 select (from l3 in ss.Set() - select l3).Distinct().Take(1).OrderBy(e => e.Id).FirstOrDefault().Name); + select l3).Distinct().Take(1).OrderBy(e => e.Id).FirstOrDefault()!.Name); AssertSql( """ @@ -1328,7 +1326,7 @@ public void Multiple_complex_includes_from_sql() using var context = CreateContext(); var query = context.LevelOne.FromSqlRaw("SELECT * FROM [LevelOne]") .Include(e => e.OneToOne_Optional_FK1) - .ThenInclude(e => e.OneToMany_Optional2) + .ThenInclude(e => e!.OneToMany_Optional2) .Include(e => e.OneToMany_Optional1) .ThenInclude(e => e.OneToOne_Optional_FK2); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerFixture.cs index d7b4124b7de..857271c4f7a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsSharedTypeQuerySqlServerFixture : ComplexNavigationsSharedTypeQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerTest.cs index a729ed7baa3..b3d8f7aef22 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsSharedTypeQuerySqlServerTest : ComplexNavigationsSharedTypeQueryRelationalTestBase { @@ -31,7 +29,7 @@ await AssertQuery( ss => from l1 in ss.Set() where l1.Id < 3 select (from l3 in ss.Set() - select l3).Distinct().Skip(1).OrderBy(e => e.Id).FirstOrDefault().Name); + select l3).Distinct().Skip(1).OrderBy(e => e.Id).FirstOrDefault()!.Name); AssertSql( """ @@ -79,7 +77,7 @@ await AssertQuery( ss => from l1 in ss.Set() where l1.Id < 3 select (from l3 in ss.Set() - select l3).Distinct().Take(1).OrderBy(e => e.Id).FirstOrDefault().Name); + select l3).Distinct().Take(1).OrderBy(e => e.Id).FirstOrDefault()!.Name); AssertSql( """ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexTypeQuerySqlServerTest.cs index 7010ccbb1d1..d3735ebd0ae 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ComplexTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ComplexTypeQuerySqlServerTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexTypeQuerySqlServerTest : ComplexTypeQueryRelationalTestBase< ComplexTypeQuerySqlServerTest.ComplexTypeQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerFixture.cs index fdd8e2aa9f7..3263904c38e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysQuerySqlServerFixture : CompositeKeysQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerTest.cs index cec6c493897..cfbe3855481 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysQuerySqlServerTest : CompositeKeysQueryRelationalTestBase { public CompositeKeysQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysSplitQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysSplitQuerySqlServerTest.cs index 9242d6316f8..ddc72161d59 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysSplitQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/CompositeKeysSplitQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysSplitQuerySqlServerTest : CompositeKeysSplitQueryRelationalTestBase { public CompositeKeysSplitQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Ef6GroupBySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Ef6GroupBySqlServerTest.cs index a101841fff4..afbda7dc85b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Ef6GroupBySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Ef6GroupBySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class Ef6GroupBySqlServerTest : Ef6GroupByTestBase { public Ef6GroupBySqlServerTest(Ef6GroupBySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/EntitySplittingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/EntitySplittingQuerySqlServerTest.cs index bd1dc3973f7..bb6c77bc9c1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/EntitySplittingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/EntitySplittingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class EntitySplittingQuerySqlServerTest(NonSharedFixture fixture) : EntitySplittingQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/FromSqlSprocQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/FromSqlSprocQuerySqlServerTest.cs index 5720d8d818f..e7a7d8dd5c5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/FromSqlSprocQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/FromSqlSprocQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class FromSqlSprocQuerySqlServerTest : FromSqlSprocQueryTestBase> { public FromSqlSprocQuerySqlServerTest(NorthwindQuerySqlServerFixture fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQueryAzureSynapseTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQueryAzureSynapseTest.cs index 447b9a6bb26..77ad6088443 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQueryAzureSynapseTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQueryAzureSynapseTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class FunkyDataQueryAzureSynapseTest : FunkyDataQuerySqlServerBaseTest< FunkyDataQueryAzureSynapseTest.FunkyDataQueryAzureSynapseFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerBaseTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerBaseTest.cs index 9d8f421b441..df11f6c0c8b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerBaseTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerBaseTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public abstract class FunkyDataQuerySqlServerBaseTest : FunkyDataQueryTestBase where TFixture : FunkyDataQueryTestBase.FunkyDataQueryFixtureBase, ITestSqlLoggerFactory, new() { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerTest.cs index 1cf8bdb95a3..f9ab13a3d98 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/FunkyDataQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class FunkyDataQuerySqlServerTest : FunkyDataQuerySqlServerBaseTest { public FunkyDataQuerySqlServerTest(FunkyDataQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarFromSqlQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarFromSqlQuerySqlServerTest.cs index 76303866868..08f9a1c9937 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarFromSqlQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarFromSqlQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarFromSqlQuerySqlServerTest : GearsOfWarFromSqlQueryTestBase { public GearsOfWarFromSqlQuerySqlServerTest(GearsOfWarQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerFixture.cs index 6302cd23eb0..0e432f8aa6a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarQuerySqlServerFixture : GearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs index 12f98c60d9d..71501d1a5da 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarQuerySqlServerTest : GearsOfWarQueryRelationalTestBase { public GearsOfWarQuerySqlServerTest(GearsOfWarQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -7466,7 +7464,7 @@ public async Task DataLength_function_for_string_parameter(bool async) await AssertQueryScalar( async, ss => ss.Set().Select(m => EF.Functions.DataLength(m.CodeName)), - ss => ss.Set().Select(m => (int?)(m.CodeName.Length * 2))); + ss => ss.Set().Select(m => (int?)(m.CodeName!.Length * 2))); AssertSql( """ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/IncludeOneToOneSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/IncludeOneToOneSqlServerTest.cs index 8bad9f3ed48..fa9ed9258ff 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/IncludeOneToOneSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/IncludeOneToOneSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class IncludeOneToOneSqlServerTest : IncludeOneToOneTestBase { public IncludeOneToOneSqlServerTest(OneToOneQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerFixture.cs index 4aa5e7e56fd..762b7cf82eb 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class IncompleteMappingInheritanceQuerySqlServerFixture : TPHInheritanceQuerySqlServerFixture { public override bool IsDiscriminatorMappingComplete diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerTest.cs index e0f07d02e34..4667ad0c357 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqlServerTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class IncompleteMappingInheritanceQuerySqlServerTest( IncompleteMappingInheritanceQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -21,19 +19,19 @@ public virtual void Check_all_tests_overridden() public virtual void Common_property_shares_column() { using var context = CreateContext(); - var liltType = context.Model.FindEntityType(typeof(Lilt)); - var cokeType = context.Model.FindEntityType(typeof(Coke)); - var teaType = context.Model.FindEntityType(typeof(Tea)); + var liltType = context.Model.FindEntityType(typeof(Lilt))!; + var cokeType = context.Model.FindEntityType(typeof(Coke))!; + var teaType = context.Model.FindEntityType(typeof(Tea))!; - Assert.Equal("SugarGrams", cokeType.FindProperty("SugarGrams").GetColumnName()); - Assert.Equal("CaffeineGrams", cokeType.FindProperty("CaffeineGrams").GetColumnName()); - Assert.Equal("CokeCO2", cokeType.FindProperty("Carbonation").GetColumnName()); + Assert.Equal("SugarGrams", cokeType.FindProperty("SugarGrams")!.GetColumnName()); + Assert.Equal("CaffeineGrams", cokeType.FindProperty("CaffeineGrams")!.GetColumnName()); + Assert.Equal("CokeCO2", cokeType.FindProperty("Carbonation")!.GetColumnName()); - Assert.Equal("SugarGrams", liltType.FindProperty("SugarGrams").GetColumnName()); - Assert.Equal("LiltCO2", liltType.FindProperty("Carbonation").GetColumnName()); + Assert.Equal("SugarGrams", liltType.FindProperty("SugarGrams")!.GetColumnName()); + Assert.Equal("LiltCO2", liltType.FindProperty("Carbonation")!.GetColumnName()); - Assert.Equal("CaffeineGrams", teaType.FindProperty("CaffeineGrams").GetColumnName()); - Assert.Equal("HasMilk", teaType.FindProperty("HasMilk").GetColumnName()); + Assert.Equal("CaffeineGrams", teaType.FindProperty("CaffeineGrams")!.GetColumnName()); + Assert.Equal("HasMilk", teaType.FindProperty("HasMilk")!.GetColumnName()); } public override async Task Can_query_when_shared_column(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerFixture.cs index 3e4bab20f3a..9304b4a57b3 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCFiltersInheritanceQuerySqlServerFixture : TPCInheritanceQuerySqlServerFixture { public override bool EnableFilters diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerTest.cs index 3dc26fe1df8..868b99e08b5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCFiltersInheritanceQuerySqlServerTest : TPCFiltersInheritanceQueryTestBase { public TPCFiltersInheritanceQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerFixture.cs index 4955a4f1ab7..8a54a1bdbbd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCGearsOfWarQuerySqlServerFixture : TPCGearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerTest.cs index 5ab04293fd9..f71b1b4ef52 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCGearsOfWarQuerySqlServerTest : TPCGearsOfWarQueryRelationalTestBase { public TPCGearsOfWarQuerySqlServerTest(TPCGearsOfWarQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -9961,7 +9959,7 @@ public async Task DataLength_function_for_string_parameter(bool async) await AssertQueryScalar( async, ss => ss.Set().Select(m => EF.Functions.DataLength(m.CodeName)), - ss => ss.Set().Select(m => (int?)(m.CodeName.Length * 2))); + ss => ss.Set().Select(m => (int?)(m.CodeName!.Length * 2))); AssertSql( """ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerFixture.cs index 30881af90ed..021a04fe707 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCInheritanceQueryHiLoSqlServerFixture : TPCInheritanceQuerySqlServerFixtureBase { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerTest.cs index 20684790204..cbfb00d62fe 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQueryHiLoSqlServerTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCInheritanceQueryHiLoSqlServerTest(TPCInheritanceQueryHiLoSqlServerFixture fixture, ITestOutputHelper testOutputHelper) : TPCInheritanceQuerySqlServerTestBase(fixture, testOutputHelper); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerFixtureBase.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerFixtureBase.cs index 7363a2d4e32..83eef39dbbf 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerFixtureBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerFixtureBase.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public abstract class TPCInheritanceQuerySqlServerFixtureBase : TPCInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTest.cs index 930726321da..46047e6c29e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCInheritanceQuerySqlServerTest(TPCInheritanceQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) : TPCInheritanceQuerySqlServerTestBase(fixture, testOutputHelper); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTestBase.cs index 4eb94d840c1..69f20691606 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqlServerTestBase.cs @@ -3,15 +3,13 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public abstract class TPCInheritanceQuerySqlServerTestBase(TFixture fixture, ITestOutputHelper testOutputHelper) : TPCInheritanceQueryTestBase(fixture, testOutputHelper) where TFixture : TPCInheritanceQuerySqlServerFixtureBase, new() { [Fact] public virtual void Check_all_tests_overridden() - => TestHelpers.AssertAllMethodsOverridden(GetType().BaseType); + => TestHelpers.AssertAllMethodsOverridden(GetType().BaseType!); public override async Task Byte_enum_value_constant_used_in_projection(bool async) { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqlServerTest.cs index 39e6d6a9185..759e89e29b1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyNoTrackingQuerySqlServerTest : TPCManyToManyNoTrackingQueryRelationalTestBase { public TPCManyToManyNoTrackingQuerySqlServerTest(TPCManyToManyQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerFixture.cs index d5b3cd84300..8db83907af0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyQuerySqlServerFixture : TPCManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerTest.cs index 3508a93722a..14d649e679e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyQuerySqlServerTest : TPCManyToManyQueryRelationalTestBase { public TPCManyToManyQuerySqlServerTest(TPCManyToManyQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqlServerTest.cs index ef2f3104b8d..ec7d51b84ba 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCRelationshipsQuerySqlServerTest : TPCRelationshipsQueryTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerFixture.cs index 0a2a1f02a87..9c6fcf66e3a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHFiltersInheritanceQuerySqlServerFixture : TPHInheritanceQuerySqlServerFixture { public override bool EnableFilters diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerTest.cs index 2b72ee1f4b3..0c50e3dc80a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHFiltersInheritanceQuerySqlServerTest : FiltersInheritanceQueryTestBase { public TPHFiltersInheritanceQuerySqlServerTest(TPHFiltersInheritanceQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerFixture.cs index a277786f042..1fe039d50b9 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHInheritanceQuerySqlServerFixture : TPHInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerTest.cs index ab6a246d3e1..d4772f1b158 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHInheritanceQuerySqlServerTest(TPHInheritanceQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) : TPHInheritanceQueryTestBase(fixture, testOutputHelper) { @@ -18,19 +16,19 @@ public virtual void Check_all_tests_overridden() public virtual void Common_property_shares_column() { using var context = CreateContext(); - var liltType = context.Model.FindEntityType(typeof(Lilt)); - var cokeType = context.Model.FindEntityType(typeof(Coke)); - var teaType = context.Model.FindEntityType(typeof(Tea)); + var liltType = context.Model.FindEntityType(typeof(Lilt))!; + var cokeType = context.Model.FindEntityType(typeof(Coke))!; + var teaType = context.Model.FindEntityType(typeof(Tea))!; - Assert.Equal("SugarGrams", cokeType.FindProperty("SugarGrams").GetColumnName()); - Assert.Equal("CaffeineGrams", cokeType.FindProperty("CaffeineGrams").GetColumnName()); - Assert.Equal("CokeCO2", cokeType.FindProperty("Carbonation").GetColumnName()); + Assert.Equal("SugarGrams", cokeType.FindProperty("SugarGrams")!.GetColumnName()); + Assert.Equal("CaffeineGrams", cokeType.FindProperty("CaffeineGrams")!.GetColumnName()); + Assert.Equal("CokeCO2", cokeType.FindProperty("Carbonation")!.GetColumnName()); - Assert.Equal("SugarGrams", liltType.FindProperty("SugarGrams").GetColumnName()); - Assert.Equal("LiltCO2", liltType.FindProperty("Carbonation").GetColumnName()); + Assert.Equal("SugarGrams", liltType.FindProperty("SugarGrams")!.GetColumnName()); + Assert.Equal("LiltCO2", liltType.FindProperty("Carbonation")!.GetColumnName()); - Assert.Equal("CaffeineGrams", teaType.FindProperty("CaffeineGrams").GetColumnName()); - Assert.Equal("HasMilk", teaType.FindProperty("HasMilk").GetColumnName()); + Assert.Equal("CaffeineGrams", teaType.FindProperty("CaffeineGrams")!.GetColumnName()); + Assert.Equal("HasMilk", teaType.FindProperty("HasMilk")!.GetColumnName()); } public override async Task Can_query_when_shared_column(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerFixture.cs index f853f2ddb62..fbdd8d26f7b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHTemporalFiltersInheritanceQuerySqlServerFixture : TPHFiltersInheritanceQuerySqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerTest.cs index cff7c95ca4d..2f4a396f037 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPHTemporalFiltersInheritanceQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TPHTemporalFiltersInheritanceQuerySqlServerTest : FiltersInheritanceQueryTestBase< TPHTemporalFiltersInheritanceQuerySqlServerFixture> diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerFixture.cs index 02c13d5381b..021c05d518f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTFiltersInheritanceQuerySqlServerFixture : TPTInheritanceQuerySqlServerFixture { public override bool EnableFilters diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerTest.cs index e7b48b35a8f..354e549b58e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTFiltersInheritanceQuerySqlServerTest : TPTFiltersInheritanceQueryTestBase { public TPTFiltersInheritanceQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerFixture.cs index 6dc45b8de67..6337a1405e5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTGearsOfWarQuerySqlServerFixture : TPTGearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerTest.cs index f0b5870f8cc..f68ac3e679d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTGearsOfWarQuerySqlServerTest : TPTGearsOfWarQueryRelationalTestBase { public TPTGearsOfWarQuerySqlServerTest(TPTGearsOfWarQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -8414,7 +8412,7 @@ public async Task DataLength_function_for_string_parameter(bool async) await AssertQueryScalar( async, ss => ss.Set().Select(m => EF.Functions.DataLength(m.CodeName)), - ss => ss.Set().Select(m => (int?)(m.CodeName.Length * 2))); + ss => ss.Set().Select(m => (int?)(m.CodeName!.Length * 2))); AssertSql( """ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerFixture.cs index 917c9a5295f..1b98d066083 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTInheritanceQuerySqlServerFixture : TPTInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerTest.cs index b628e16a9a8..3c8b43441ca 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTInheritanceQuerySqlServerTest(TPTInheritanceQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) : TPTInheritanceQueryTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqlServerTest.cs index 62a379284ec..26c88bd31bb 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyNoTrackingQuerySqlServerTest : TPTManyToManyNoTrackingQueryRelationalTestBase< TPTManyToManyQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerFixture.cs index bd0872990f6..caab5d512ff 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyQuerySqlServerFixture : TPTManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerTest.cs index a8133a47440..92972d321c2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyQuerySqlServerTest : TPTManyToManyQueryRelationalTestBase { public TPTManyToManyQuerySqlServerTest(TPTManyToManyQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqlServerTest.cs index da9c9e0b9d1..ca4aa33afe0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTRelationshipsQuerySqlServerTest : TPTRelationshipsQueryTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceRelationshipsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceRelationshipsQuerySqlServerTest.cs index b0022570600..96e6abbb8c2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceRelationshipsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceRelationshipsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class InheritanceRelationshipsQuerySqlServerTest : InheritanceRelationshipsQueryRelationalTestBase< InheritanceRelationshipsQuerySqlServerTest.InheritanceRelationshipsQuerySqlServerFixture> diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerFixture.cs index cb9d5f8adb8..78de2e91ee7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerFixture.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. -#nullable disable using Microsoft.EntityFrameworkCore.TestModels.JsonQuery; namespace Microsoft.EntityFrameworkCore.Query; diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerTest.cs index 4eebafe5734..07cd1155c97 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerTest.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. -#nullable disable using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore.Diagnostics.Internal; using Microsoft.EntityFrameworkCore.SqlServer.Diagnostics.Internal; @@ -3923,6 +3922,191 @@ INSERT INTO [Entities] ([Id], [Scenario], [OptionalReference], [RequiredReferenc """); } + #region PrimitiveCollectionInColumn + + [Fact] + public virtual async Task Materialize_json_null_primitive_collection_mapped_to_column_is_null() + { + if (JsonColumnType == "json") + { + await Assert.ThrowsAsync( + () => InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn)); + return; + } + + var contextFactory = await InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn); + + using var context = contextFactory.CreateDbContext(); + + // The primitive collection is mapped to its own column via CollectionToJsonStringConverter (which does NOT + // handle the JSON 'null' token). Legacy/external data may store the JSON 'null' token (the literal string + // "null", which Utf8JsonReader tokenizes as JsonTokenType.Null) rather than a SQL NULL. The materializer peeks + // the first token and short-circuits to null instead of letting JsonCollectionOfReferencesReaderWriter throw + // "Invalid token type: 'Null'". See issues #34881 and #38454. + var result = await context.Set() + .Where(x => x.Id < 4).OrderBy(x => x.Id).ToListAsync(); + + Assert.Equal(3, result.Count); + Assert.Equal(["a", "b"], result[0].Tags); + Assert.Null(result[1].Tags); // JSON 'null' token + Assert.Null(result[2].Tags); // SQL NULL + } + + [Fact] + public virtual async Task Materialize_empty_json_primitive_collection_mapped_to_column_throws() + { + if (JsonColumnType == "json") + { + await Assert.ThrowsAsync( + () => InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn)); + return; + } + + var contextFactory = await InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn); + + using var context = contextFactory.CreateDbContext(); + + // An empty/whitespace JSON string in the column isn't valid JSON; the diagnostics here match the converter + // path (JsonValueReaderWriter.FromJsonString), which rejects it with CoreStrings.EmptyJsonString. + var exception = await Assert.ThrowsAsync(() + => context.Set().Where(x => x.Id == 4).ToListAsync()); + + Assert.Equal(CoreStrings.EmptyJsonString, exception.Message); + } + + [Fact] + public virtual async Task Materialize_json_null_required_primitive_collection_mapped_to_column_throws() + { + if (JsonColumnType == "json") + { + await Assert.ThrowsAsync( + () => InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn)); + return; + } + + var contextFactory = await InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn); + + using var context = contextFactory.CreateDbContext(); + + // The required primitive collection column holds the JSON 'null' token. Since the property is required, the + // materializer throws a clear, property-named error rather than silently materializing null. See #34881. + var exception = await Assert.ThrowsAsync(() + => context.Set().Where(x => x.Id == 5).ToListAsync()); + + Assert.Equal(RelationalStrings.NullValueInRequiredJsonProperty("RequiredTags"), exception.Message); + } + + [Fact] + public virtual async Task Project_json_null_primitive_collection_mapped_to_column_is_null() + { + if (JsonColumnType == "json") + { + await Assert.ThrowsAsync( + () => InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn)); + return; + } + + var contextFactory = await InitializeNonSharedTest( + onModelCreating: OnModelCreatingPrimitiveCollectionInColumn, + onConfiguring: b => b.ConfigureWarnings(ConfigureWarnings), + seed: SeedPrimitiveCollectionInColumn); + + using var context = contextFactory.CreateDbContext(); + + // Projecting the collection column directly reaches the materializer without an IProperty. The JSON 'null' + // token (and SQL NULL) must still be materialized as null rather than throwing "Invalid token type: 'Null'". + var tags = await context.Set() + .Where(x => x.Id < 4).OrderBy(x => x.Id).Select(x => x.Tags).ToListAsync(); + + Assert.Equal(3, tags.Count); + Assert.Equal(["a", "b"], tags[0]); + Assert.Null(tags[1]); // JSON 'null' token + Assert.Null(tags[2]); // SQL NULL + } + + protected virtual async Task SeedPrimitiveCollectionInColumn(DbContext ctx) + { + // primitive collection column contains a JSON array + await ctx.Database.ExecuteSqlAsync( + $$""" +INSERT INTO [Entities] ([Id], [Tags], [RequiredTags]) +VALUES(1, N'["a","b"]', N'[]') +"""); + + // primitive collection column contains a JSON null token (the literal string "null", not a SQL NULL) + await ctx.Database.ExecuteSqlAsync( + $$""" +INSERT INTO [Entities] ([Id], [Tags], [RequiredTags]) +VALUES(2, N'null', N'[]') +"""); + + // primitive collection column is SQL NULL + await ctx.Database.ExecuteSqlAsync( + $$""" +INSERT INTO [Entities] ([Id], [Tags], [RequiredTags]) +VALUES(3, NULL, N'[]') +"""); + + // primitive collection column contains an empty (invalid) JSON string + await ctx.Database.ExecuteSqlAsync( + $$""" +INSERT INTO [Entities] ([Id], [Tags], [RequiredTags]) +VALUES(4, N'', N'[]') +"""); + + // required primitive collection column contains a JSON null token + await ctx.Database.ExecuteSqlAsync( + $$""" +INSERT INTO [Entities] ([Id], [Tags], [RequiredTags]) +VALUES(5, N'["a","b"]', N'null') +"""); + } + + protected virtual void OnModelCreatingPrimitiveCollectionInColumn(ModelBuilder modelBuilder) + => modelBuilder.Entity(b => + { + b.ToTable("Entities"); + b.Property(x => x.Id).ValueGeneratedNever(); + b.PrimitiveCollection(x => x.Tags); + b.PrimitiveCollection(x => x.RequiredTags).IsRequired(); + }); + + protected class ContextPrimitiveCollectionInColumn(DbContextOptions options) : DbContext(options) + { + public class MyEntity + { + public int Id { get; set; } + + // IList matches the legacy mapping reported in #34881. + public IList? Tags { get; set; } + + public IList RequiredTags { get; set; } = null!; + } + } + + #endregion + #region JsonPropertyWithConverters [Fact] @@ -3936,7 +4120,7 @@ public virtual async Task Materialize_json_null_property_with_converters() using var context = contextFactory.CreateDbContext(); var result = await context.Set().SingleAsync(x => x.Id == 1); - Assert.Equal("e1", result.Reference.Name); + Assert.Equal("e1", result.Reference!.Name); // Both properties have a JSON 'null' token value. The streaming JSON shaper's null guard // (CreateReadJsonPropertyValueExpression) routes the null based on the converter's ConvertsNulls flag: @@ -3963,12 +4147,12 @@ protected virtual void OnModelCreatingJsonPropertyWithConverters(ModelBuilder mo { b.ToJson().HasColumnType(JsonColumnType); b.Property(x => x.ConvertedHandlingNulls).HasConversion( - new ValueConverter( + new ValueConverter( v => v, v => v ?? "FROM_DB_NULL", convertsNulls: true)); b.Property(x => x.ConvertedNotHandlingNulls).HasConversion( - new ValueConverter( + new ValueConverter( v => v, v => "FROM_CONVERTER:" + v, convertsNulls: false)); @@ -3980,14 +4164,14 @@ protected class ContextJsonPropertyWithConverters(DbContextOptions options) : Db public class MyEntity { public int Id { get; set; } - public MyJsonEntity Reference { get; set; } + public MyJsonEntity? Reference { get; set; } } public class MyJsonEntity { - public string Name { get; set; } - public string ConvertedHandlingNulls { get; set; } - public string ConvertedNotHandlingNulls { get; set; } + public string? Name { get; set; } + public string? ConvertedHandlingNulls { get; set; } + public string? ConvertedNotHandlingNulls { get; set; } } } @@ -4010,12 +4194,12 @@ public virtual async Task Materialize_json_null_optional_primitive_collection_in Assert.Equal(2, result.Count); // Id == 1: JSON has "NullableStrings": null -> materialized as null. - Assert.Null(result[0].Reference.NullableStrings); - Assert.Equal(["a", "b"], result[0].Reference.RequiredStrings); + Assert.Null(result[0].Reference!.NullableStrings); + Assert.Equal(["a", "b"], result[0].Reference!.RequiredStrings); // Id == 2: JSON has "NullableStrings": ["x", "y"]. - Assert.Equal(["x", "y"], result[1].Reference.NullableStrings); - Assert.Equal(["c", "d"], result[1].Reference.RequiredStrings); + Assert.Equal(["x", "y"], result[1].Reference!.NullableStrings); + Assert.Equal(["c", "d"], result[1].Reference!.RequiredStrings); } [Fact] @@ -4079,13 +4263,13 @@ protected class ContextPrimitiveCollectionInJson(DbContextOptions options) : DbC public class MyEntity { public int Id { get; set; } - public MyJsonEntity Reference { get; set; } + public MyJsonEntity? Reference { get; set; } } public class MyJsonEntity { - public List NullableStrings { get; set; } - public List RequiredStrings { get; set; } + public List? NullableStrings { get; set; } + public List RequiredStrings { get; set; } = null!; } } @@ -4104,7 +4288,7 @@ protected virtual async Task Read_enum_property_with_legacy_values_core(bool asy var query = context.Set().Select(x => new { - x.Reference.IntEnum, + x.Reference!.IntEnum, x.Reference.ByteEnum, x.Reference.LongEnum, x.Reference.NullableEnum @@ -4131,18 +4315,18 @@ public virtual async Task Read_json_entity_with_enum_properties_with_legacy_valu using (var context = contextFactory.CreateDbContext()) { - var query = context.Set().Select(x => x.Reference).AsNoTracking(); + var query = context.Set().Select(x => x.Reference!).AsNoTracking(); var result = async ? await query.ToListAsync() : query.ToList(); Assert.Equal(1, result.Count); - Assert.Equal(ByteEnumLegacyValues.Redmond, result[0].ByteEnum); - Assert.Equal(IntEnumLegacyValues.Foo, result[0].IntEnum); - Assert.Equal(LongEnumLegacyValues.Three, result[0].LongEnum); - Assert.Equal(ULongEnumLegacyValues.Three, result[0].ULongEnum); - Assert.Equal(IntEnumLegacyValues.Bar, result[0].NullableEnum); + Assert.Equal(ByteEnumLegacyValues.Redmond, result[0]!.ByteEnum); + Assert.Equal(IntEnumLegacyValues.Foo, result[0]!.IntEnum); + Assert.Equal(LongEnumLegacyValues.Three, result[0]!.LongEnum); + Assert.Equal(ULongEnumLegacyValues.Three, result[0]!.ULongEnum); + Assert.Equal(IntEnumLegacyValues.Bar, result[0]!.NullableEnum); } var testLogger = new TestLogger(); @@ -4229,15 +4413,15 @@ protected virtual void BuildModelEnumLegacyValues(ModelBuilder modelBuilder) private class MyEntityEnumLegacyValues { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public MyJsonEntityEnumLegacyValues Reference { get; set; } - public List Collection { get; set; } + public MyJsonEntityEnumLegacyValues? Reference { get; set; } + public List Collection { get; set; } = null!; } private class MyJsonEntityEnumLegacyValues { - public string Name { get; set; } + public string? Name { get; set; } // ReSharper disable once UnusedAutoPropertyAccessor.Local public IntEnumLegacyValues IntEnum { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerFixture.cs index 07a5c54edb2..d5d73487b84 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class JsonQuerySqlServerFixture : JsonQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerTest.cs index 7e88c33ac6b..4842ee84d9b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/JsonQuerySqlServerTest.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class JsonQuerySqlServerTest : JsonQueryRelationalTestBase { public JsonQuerySqlServerTest(JsonQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -3844,9 +3842,9 @@ public class MyEntity public int Id { get; set; } // IList matches the legacy mapping reported in #34881. - public IList Tags { get; set; } + public IList? Tags { get; set; } - public IList RequiredTags { get; set; } + public IList RequiredTags { get; set; } = null!; } } @@ -3865,7 +3863,7 @@ public virtual async Task Materialize_json_null_property_with_converters() using var context = contextFactory.CreateDbContext(); var result = await context.Set().SingleAsync(x => x.Id == 1); - Assert.Equal("e1", result.Reference.Name); + Assert.Equal("e1", result.Reference!.Name); // Both properties have a JSON 'null' token value. The streaming JSON shaper's null guard // (CreateReadJsonPropertyValueExpression) routes the null based on the converter's ConvertsNulls flag: @@ -3892,12 +3890,12 @@ protected virtual void OnModelCreatingJsonPropertyWithConverters(ModelBuilder mo { b.ToJson().HasColumnType(JsonColumnType); b.Property(x => x.ConvertedHandlingNulls).HasConversion( - new ValueConverter( + new ValueConverter( v => v, v => v ?? "FROM_DB_NULL", convertsNulls: true)); b.Property(x => x.ConvertedNotHandlingNulls).HasConversion( - new ValueConverter( + new ValueConverter( v => v, v => "FROM_CONVERTER:" + v, convertsNulls: false)); @@ -3909,14 +3907,14 @@ protected class ContextJsonPropertyWithConverters(DbContextOptions options) : Db public class MyEntity { public int Id { get; set; } - public MyJsonEntity Reference { get; set; } + public MyJsonEntity? Reference { get; set; } } public class MyJsonEntity { - public string Name { get; set; } - public string ConvertedHandlingNulls { get; set; } - public string ConvertedNotHandlingNulls { get; set; } + public string? Name { get; set; } + public string? ConvertedHandlingNulls { get; set; } + public string? ConvertedNotHandlingNulls { get; set; } } } @@ -3939,12 +3937,12 @@ public virtual async Task Materialize_json_null_optional_primitive_collection_in Assert.Equal(2, result.Count); // Id == 1: JSON has "NullableStrings": null -> materialized as null. - Assert.Null(result[0].Reference.NullableStrings); - Assert.Equal(["a", "b"], result[0].Reference.RequiredStrings); + Assert.Null(result[0].Reference!.NullableStrings); + Assert.Equal(["a", "b"], result[0].Reference!.RequiredStrings); // Id == 2: JSON has "NullableStrings": ["x", "y"]. - Assert.Equal(["x", "y"], result[1].Reference.NullableStrings); - Assert.Equal(["c", "d"], result[1].Reference.RequiredStrings); + Assert.Equal(["x", "y"], result[1].Reference!.NullableStrings); + Assert.Equal(["c", "d"], result[1].Reference!.RequiredStrings); } [Fact] @@ -4008,13 +4006,13 @@ protected class ContextPrimitiveCollectionInJson(DbContextOptions options) : DbC public class MyEntity { public int Id { get; set; } - public MyJsonEntity Reference { get; set; } + public MyJsonEntity? Reference { get; set; } } public class MyJsonEntity { - public List NullableStrings { get; set; } - public List RequiredStrings { get; set; } + public List? NullableStrings { get; set; } + public List RequiredStrings { get; set; } = null!; } } @@ -4033,7 +4031,7 @@ protected virtual async Task Read_enum_property_with_legacy_values_core(bool asy var query = context.Set().Select(x => new { - x.Reference.IntEnum, + x.Reference!.IntEnum, x.Reference.ByteEnum, x.Reference.LongEnum, x.Reference.NullableEnum @@ -4060,18 +4058,18 @@ public virtual async Task Read_json_entity_with_enum_properties_with_legacy_valu using (var context = contextFactory.CreateDbContext()) { - var query = context.Set().Select(x => x.Reference).AsNoTracking(); + var query = context.Set().Select(x => x.Reference!).AsNoTracking(); var result = async ? await query.ToListAsync() : query.ToList(); Assert.Equal(1, result.Count); - Assert.Equal(ByteEnumLegacyValues.Redmond, result[0].ByteEnum); - Assert.Equal(IntEnumLegacyValues.Foo, result[0].IntEnum); - Assert.Equal(LongEnumLegacyValues.Three, result[0].LongEnum); - Assert.Equal(ULongEnumLegacyValues.Three, result[0].ULongEnum); - Assert.Equal(IntEnumLegacyValues.Bar, result[0].NullableEnum); + Assert.Equal(ByteEnumLegacyValues.Redmond, result[0]!.ByteEnum); + Assert.Equal(IntEnumLegacyValues.Foo, result[0]!.IntEnum); + Assert.Equal(LongEnumLegacyValues.Three, result[0]!.LongEnum); + Assert.Equal(ULongEnumLegacyValues.Three, result[0]!.ULongEnum); + Assert.Equal(IntEnumLegacyValues.Bar, result[0]!.NullableEnum); } var testLogger = new TestLogger(); @@ -4158,15 +4156,15 @@ protected virtual void BuildModelEnumLegacyValues(ModelBuilder modelBuilder) private class MyEntityEnumLegacyValues { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public MyJsonEntityEnumLegacyValues Reference { get; set; } - public List Collection { get; set; } + public MyJsonEntityEnumLegacyValues? Reference { get; set; } + public List Collection { get; set; } = null!; } private class MyJsonEntityEnumLegacyValues { - public string Name { get; set; } + public string? Name { get; set; } // ReSharper disable once UnusedAutoPropertyAccessor.Local public IntEnumLegacyValues IntEnum { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs index 08d98fecb7a..406785d5104 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyNoTrackingQuerySqlServerTest : ManyToManyNoTrackingQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerFixture.cs index 157e35175b8..ed9366cbf0c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyQuerySqlServerFixture : ManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs index f793d157ad4..dbfdb03994e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyQuerySqlServerTest : ManyToManyQueryRelationalTestBase { public ManyToManyQuerySqlServerTest(ManyToManyQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/MappingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/MappingQuerySqlServerTest.cs index c19d3a62934..6c2ce7f098c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/MappingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/MappingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class MappingQuerySqlServerTest : MappingQueryTestBase { public override void All_customers() diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqlServerTest.cs index a0d7bf9dfef..c6ca23702ad 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqlServerTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAggregateOperatorsQuerySqlServerTest : NorthwindAggregateOperatorsQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqlServerTest.cs index db190d19648..4ec5fdb2675 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAsNoTrackingQuerySqlServerTest : NorthwindAsNoTrackingQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsTrackingQuerySqlServerTest.cs index e02cb5b8c04..344a0ab13b7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindAsTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAsTrackingQuerySqlServerTest : NorthwindAsTrackingQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindChangeTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindChangeTrackingQuerySqlServerTest.cs index cac4852b7a0..3e99a5a8ee1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindChangeTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindChangeTrackingQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindChangeTrackingQuerySqlServerTest : NorthwindChangeTrackingQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindCompiledQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindCompiledQuerySqlServerTest.cs index f73c74a1b1c..bc20e57dc23 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindCompiledQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindCompiledQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindCompiledQuerySqlServerTest : NorthwindCompiledQueryTestBase> { public NorthwindCompiledQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindDbFunctionsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindDbFunctionsQuerySqlServerTest.cs index 5de4ab00643..c4941a6d5f3 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindDbFunctionsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindDbFunctionsQuerySqlServerTest.cs @@ -7,8 +7,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindDbFunctionsQuerySqlServerTest : NorthwindDbFunctionsQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { @@ -266,7 +264,7 @@ await AssertCount( ss => ss.Set(), ss => ss.Set(), c => EF.Functions.DateDiffYear(c.OrderDate, DateTime.Now) == 0, - c => c.OrderDate.Value.Year - DateTime.Now.Year == 0); + c => c.OrderDate!.Value.Year - DateTime.Now.Year == 0); AssertSql( """ @@ -285,7 +283,7 @@ await AssertCount( ss => ss.Set(), ss => ss.Set(), c => EF.Functions.DateDiffMonth(c.OrderDate, DateTime.Now) == 0, - c => (c.OrderDate.Value.Year * 12) + c.OrderDate.Value.Month - ((now.Year * 12) + now.Month) == 0); + c => (c.OrderDate!.Value.Year * 12) + c.OrderDate.Value.Month - ((now.Year * 12) + now.Month) == 0); AssertSql( """ @@ -486,7 +484,7 @@ public virtual async Task IsDate_not_valid(bool async) { await AssertQueryScalar( async, - ss => ss.Set().Where(o => !EF.Functions.IsDate(o.CustomerID)).Select(o => EF.Functions.IsDate(o.CustomerID)), + ss => ss.Set().Where(o => !EF.Functions.IsDate(o.CustomerID!)).Select(o => EF.Functions.IsDate(o.CustomerID!)), ss => ss.Set().Select(c => false)); AssertSql( @@ -503,8 +501,8 @@ public virtual async Task IsDate_valid(bool async) await AssertQueryScalar( async, ss => ss.Set() - .Where(o => EF.Functions.IsDate(o.OrderDate.Value.ToString())) - .Select(o => EF.Functions.IsDate(o.OrderDate.Value.ToString())), + .Where(o => EF.Functions.IsDate(o.OrderDate!.Value.ToString())) + .Select(o => EF.Functions.IsDate(o.OrderDate!.Value.ToString())), ss => ss.Set().Select(o => true)); AssertSql( @@ -549,8 +547,8 @@ public virtual async Task IsNumeric_not_valid(bool async) await AssertQueryScalar( async, ss => ss.Set() - .Where(o => !EF.Functions.IsNumeric(o.OrderDate.Value.ToString())) - .Select(o => EF.Functions.IsNumeric(o.OrderDate.Value.ToString())), + .Where(o => !EF.Functions.IsNumeric(o.OrderDate!.Value.ToString())) + .Select(o => EF.Functions.IsNumeric(o.OrderDate!.Value.ToString())), ss => ss.Set().Select(c => false)); AssertSql( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqlServerTest.cs index d0a41026063..7bd29377308 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindEFPropertyIncludeQuerySqlServerTest : NorthwindEFPropertyIncludeQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindFunctionsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindFunctionsQuerySqlServerTest.cs index 5b2ed22142e..d9e2188a983 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindFunctionsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindFunctionsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindFunctionsQuerySqlServerTest : NorthwindFunctionsQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { @@ -177,8 +175,8 @@ public virtual async Task StandardDeviation(bool async) : query.ToList(); var product9 = results.Single(r => r.ProductID == 9); - Assert.Equal(8.675943752699023, product9.SampleStandardDeviation.Value, 5); - Assert.Equal(7.759999999999856, product9.PopulationStandardDeviation.Value, 5); + Assert.Equal(8.675943752699023, product9.SampleStandardDeviation!.Value, 5); + Assert.Equal(7.759999999999856, product9.PopulationStandardDeviation!.Value, 5); AssertSql( """ @@ -207,8 +205,8 @@ public virtual async Task Variance(bool async) : query.ToList(); var product9 = results.Single(r => r.ProductID == 9); - Assert.Equal(75.2719999999972, product9.SampleStandardDeviation.Value, 5); - Assert.Equal(60.217599999997766, product9.PopulationStandardDeviation.Value, 5); + Assert.Equal(75.2719999999972, product9.SampleStandardDeviation!.Value, 5); + Assert.Equal(60.217599999997766, product9.PopulationStandardDeviation!.Value, 5); AssertSql( """ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindGroupByQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindGroupByQuerySqlServerTest.cs index 0a0b757efc8..3d0c1a89f9e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindGroupByQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindGroupByQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindGroupByQuerySqlServerTest : NorthwindGroupByQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqlServerTest.cs index a946425f731..5d790d95b07 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindIncludeNoTrackingQuerySqlServerTest : NorthwindIncludeNoTrackingQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeQuerySqlServerTest.cs index 79cfb4096f1..93fba080242 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindIncludeQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindIncludeQuerySqlServerTest : NorthwindIncludeQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindJoinQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindJoinQuerySqlServerTest.cs index 7355f23895d..37237b1f3cf 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindJoinQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindJoinQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindJoinQuerySqlServerTest : NorthwindJoinQueryRelationalTestBase> { public NorthwindJoinQuerySqlServerTest( diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqlServerTest.cs index bb9070e9b4f..7345d49ed95 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindKeylessEntitiesQuerySqlServerTest : NorthwindKeylessEntitiesQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindMiscellaneousQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindMiscellaneousQuerySqlServerTest.cs index 28d7db27312..6e0336b61f4 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindMiscellaneousQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindMiscellaneousQuerySqlServerTest.cs @@ -8,8 +8,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindMiscellaneousQuerySqlServerTest : NorthwindMiscellaneousQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { @@ -5950,7 +5948,7 @@ public Task Query_compiler_concurrency() .Where(c => c.City == "London") .OrderBy(c => c.CustomerID) .Select(c => context.Orders - .Where(o1 => o1.CustomerID == c.CustomerID && o1.OrderDate.Value.Year == 1997) + .Where(o1 => o1.CustomerID == c.CustomerID && o1.OrderDate!.Value.Year == 1997) .OrderBy(o1 => o1.OrderID) .Select(o1 => context.Orders .Where(o2 => o1.CustomerID == c.CustomerID) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindNavigationsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindNavigationsQuerySqlServerTest.cs index 9505241cd03..080caca5472 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindNavigationsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindNavigationsQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindNavigationsQuerySqlServerTest : NorthwindNavigationsQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQueryFiltersQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQueryFiltersQuerySqlServerTest.cs index afc4dd0068d..7f75614eaf5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQueryFiltersQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQueryFiltersQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQueryFiltersQuerySqlServerTest : NorthwindQueryFiltersQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQuerySqlServerFixture.cs index 80920a58885..ce8b9953ede 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQuerySqlServerFixture : NorthwindQueryRelationalFixture where TModelCustomizer : ITestModelCustomizer, new() { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSelectQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSelectQuerySqlServerTest.cs index d5da9833af8..3fe65dc24bf 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSelectQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSelectQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSelectQuerySqlServerTest : NorthwindSelectQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSetOperationsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSetOperationsQuerySqlServerTest.cs index e904994ae2d..5754e89f2b2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSetOperationsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSetOperationsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSetOperationsQuerySqlServerTest : NorthwindSetOperationsQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqlServerTest.cs index 7c08bbd81c3..6ff70147301 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSplitIncludeNoTrackingQuerySqlServerTest : NorthwindSplitIncludeNoTrackingQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs index 70c3e119c16..4c20b4a1983 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSplitIncludeQuerySqlServerTest : NorthwindSplitIncludeQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSqlQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSqlQuerySqlServerTest.cs index 8e52be10ca8..690841227cf 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSqlQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSqlQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSqlQuerySqlServerTest : NorthwindSqlQueryTestBase> { public NorthwindSqlQuerySqlServerTest(NorthwindQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindStringIncludeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindStringIncludeQuerySqlServerTest.cs index fdcc79ae159..86ee9283c8c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindStringIncludeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindStringIncludeQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindStringIncludeQuerySqlServerTest : NorthwindStringIncludeQueryTestBase< NorthwindQuerySqlServerFixture> { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs index f28ff0850a3..4f7ec4e3387 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindWhereQuerySqlServerTest : NorthwindWhereQueryRelationalTestBase< NorthwindQuerySqlServerFixture> { @@ -71,7 +69,7 @@ FROM [Customers] AS [c] """, queryString, ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); - return null; + return null!; } public override async Task Where_indexer_closure(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NullKeysSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NullKeysSqlServerTest.cs index dee8fcdfca5..dd1cc48a0e5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NullKeysSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NullKeysSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullKeysSqlServerTest(NullKeysSqlServerTest.NullKeysSqlServerFixture fixture) : NullKeysTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerFixture.cs index df29b554a49..be2807a66e0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullSemanticsQuerySqlServerFixture : NullSemanticsQueryFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerTest.cs index 87103bf27c7..65ae3b7508e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NullSemanticsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullSemanticsQuerySqlServerTest : NullSemanticsQueryTestBase { public NullSemanticsQuerySqlServerTest(NullSemanticsQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsProceduralSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsProceduralSqlServerTest.cs index d04bd87ed18..cedf360d320 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsProceduralSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsProceduralSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OperatorsProceduralSqlServerTest : OperatorsProceduralQueryTestBase { private static readonly MethodInfo AtTimeZoneDateTimeOffsetMethodInfo = typeof(SqlServerDbFunctionsExtensions) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsQuerySqlServerTest.cs index 50500b15232..77e72dfc6d6 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OperatorsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OperatorsQuerySqlServerTest(NonSharedFixture fixture) : OperatorsQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -263,7 +261,7 @@ public virtual async Task Where_AtTimeZone_is_null(bool async) var actual = (from e in context.Set() #pragma warning disable CS8073 // The result of the expression is always the same since a value of this type is never equal to 'null' - where EF.Functions.AtTimeZone(e.Value.Value, "UTC") == null + where EF.Functions.AtTimeZone(e.Value!.Value, "UTC") == null #pragma warning restore CS8073 // The result of the expression is always the same since a value of this type is never equal to 'null' select e.Id).ToList(); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerFixture.cs index 11692101ffd..1c2d1db549a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OptionalDependentQuerySqlServerFixture : OptionalDependentQueryFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerTest.cs index 3249890f7cb..e59106e59b5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OptionalDependentQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OptionalDependentQuerySqlServerTest : OptionalDependentQueryTestBase { public OptionalDependentQuerySqlServerTest(OptionalDependentQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OwnedEntityQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OwnedEntityQuerySqlServerTest.cs index f8baa6734a7..3d49b04a01b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OwnedEntityQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OwnedEntityQuerySqlServerTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OwnedEntityQuerySqlServerTest(NonSharedFixture fixture) : OwnedEntityQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -27,10 +25,10 @@ public virtual async Task Optional_dependent_is_null_when_sharing_required_colum Assert.Null(query[0].Data); Assert.NotNull(query[1].Data); Assert.NotNull(query[1].Contact); - Assert.Null(query[1].Contact.Address); + Assert.Null(query[1].Contact!.Address); Assert.NotNull(query[2].Data); Assert.NotNull(query[2].Contact); - Assert.NotNull(query[2].Contact.Address); + Assert.NotNull(query[2].Contact!.Address); AssertSql( """ @@ -107,28 +105,28 @@ public Task SeedAsync() public class User22054 { public int Id { get; set; } - public Data22054 Data { get; set; } - public Contact22054 Contact { get; set; } - public byte[] RowVersion { get; set; } + public Data22054? Data { get; set; } + public Contact22054? Contact { get; set; } + public byte[] RowVersion { get; set; } = null!; } public class Data22054 { - public string Data { get; set; } + public string? Data { get; set; } public bool Exists { get; set; } } public class Contact22054 { - public string MobileNumber { get; set; } - public string SharedProperty { get; set; } - public Address22054 Address { get; set; } + public string? MobileNumber { get; set; } + public string? SharedProperty { get; set; } + public Address22054? Address { get; set; } } public class Address22054 { - public string City { get; set; } - public string SharedProperty { get; set; } + public string? City { get; set; } + public string? SharedProperty { get; set; } public int Zip { get; set; } } } @@ -164,7 +162,7 @@ ORDER BY [m].[Id] protected class Context22340(DbContextOptions options) : DbContext(options) { - public DbSet MasterTrunk { get; set; } + public DbSet MasterTrunk { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -204,13 +202,13 @@ public Task SeedAsync() public class MasterTrunk22340 { - public CurrencyBag22340 FungibleBag { get; set; } - public CurrencyBag22340 StaticBag { get; set; } + public CurrencyBag22340? FungibleBag { get; set; } + public CurrencyBag22340? StaticBag { get; set; } } public class CurrencyBag22340 { - public IEnumerable Currencies { get; set; } + public IEnumerable Currencies { get; set; } = null!; } public class Currency22340 @@ -237,9 +235,9 @@ public virtual async Task Collection_include_on_owner_with_owned_type_mapped_to_ Assert.NotNull(owner.Dependents); Assert.Equal(2, owner.Dependents.Count); Assert.NotNull(owner.Owned1); - Assert.Equal("A", owner.Owned1.Value); + Assert.Equal("A", owner.Owned1!.Value); Assert.NotNull(owner.Owned2); - Assert.Equal("B", owner.Owned2.Value); + Assert.Equal("B", owner.Owned2!.Value); AssertSql( """ @@ -272,7 +270,7 @@ FROM [Owner23211] AS [o] Assert.NotNull(owner.Dependents); Assert.Equal(2, owner.Dependents.Count); Assert.NotNull(owner.Owned); - Assert.Equal("A", owner.Owned.Value); + Assert.Equal("A", owner.Owned!.Value); AssertSql( """ @@ -328,14 +326,14 @@ public Task SeedAsync() public class Owner23211 { public int Id { get; set; } - public List Dependents { get; set; } - public OwnedType23211 Owned1 { get; set; } - public OwnedType23211 Owned2 { get; set; } + public List Dependents { get; set; } = null!; + public OwnedType23211? Owned1 { get; set; } + public OwnedType23211? Owned2 { get; set; } } public class OwnedType23211 { - public string Value { get; set; } + public string? Value { get; set; } } public class Dependent23211 @@ -346,8 +344,8 @@ public class Dependent23211 public class SecondOwner23211 { public int Id { get; set; } - public List Dependents { get; set; } - public OwnedType23211 Owned { get; set; } + public List Dependents { get; set; } = null!; + public OwnedType23211? Owned { get; set; } } public class SecondDependent23211 diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/OwnedQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/OwnedQuerySqlServerTest.cs index 1b287bf90b4..0dd99735cc0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/OwnedQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/OwnedQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OwnedQuerySqlServerTest : OwnedQueryRelationalTestBase { public OwnedQuerySqlServerTest(OwnedQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQueryOldSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQueryOldSqlServerTest.cs index a25e8031ecc..a46a6f3a474 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQueryOldSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQueryOldSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - /// /// Runs all primitive collection tests with SQL Server compatibility level 120 (SQL Server 2014), which doesn't support OPENJSON. /// This exercises the older translation paths for e.g. Contains, to make sure things work for providers with no queryable constant/ diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServerTest.cs index 285ef0ac5e7..e9df4f770c1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServerTest.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. -#nullable disable using Microsoft.EntityFrameworkCore.SqlServer.Internal; using Xunit.Sdk; using static System.Linq.Expressions.Expression; @@ -3986,7 +3985,7 @@ private enum OrderedTestEnum { Label1, Label2 } private async Task TestOrderedArray( TElement value1, TElement value2, - Action onModelCreating = null) + Action? onModelCreating = null) { var arrayClrType = typeof(TElement).MakeArrayType(); @@ -4182,7 +4181,7 @@ public virtual async Task Ordered_collection_with_split_query() await using var context = contextFactory.CreateDbContext(); _ = await context.Set() - .Where(p => p.Ints.Skip(1).Contains(3)) + .Where(p => p.Ints!.Skip(1).Contains(3)) .Include(p => p.Dependents) .AsSplitQuery() .SingleAsync(); @@ -4193,14 +4192,14 @@ public class Context32976(DbContextOptions options) : DbContext(options) public class Principal { public int Id { get; set; } - public List Ints { get; set; } - public List Dependents { get; set; } + public List? Ints { get; set; } + public List Dependents { get; set; } = null!; } public class Dependent { public int Id { get; set; } - public Principal Principal { get; set; } + public Principal? Principal { get; set; } } } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/QueryFilterFuncletizationSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/QueryFilterFuncletizationSqlServerTest.cs index 546aa6e5b92..5ec72f94d30 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/QueryFilterFuncletizationSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/QueryFilterFuncletizationSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryFilterFuncletizationSqlServerTest : QueryFilterFuncletizationTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/QueryLoggingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/QueryLoggingSqlServerTest.cs index 0386c72433a..e6a4b5fd836 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/QueryLoggingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/QueryLoggingSqlServerTest.cs @@ -8,8 +8,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryLoggingSqlServerTest : IClassFixture> { public QueryLoggingSqlServerTest(NorthwindQuerySqlServerFixture fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/QueryNoClientEvalSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/QueryNoClientEvalSqlServerTest.cs index 7a2c7756c13..22465b0ba91 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/QueryNoClientEvalSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/QueryNoClientEvalSqlServerTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryNoClientEvalSqlServerTest(NorthwindQuerySqlServerFixture fixture) : QueryNoClientEvalTestBase>(fixture); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SharedTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SharedTypeQuerySqlServerTest.cs index ac8c02a975b..80261cff86a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SharedTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SharedTypeQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SharedTypeQuerySqlServerTest(NonSharedFixture fixture) : SharedTypeQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerFixture.cs index e53219c0bd0..89ece3828d3 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerFixture.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SpatialQuerySqlServerFixture : SpatialQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory @@ -30,7 +28,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con base.OnModelCreating(modelBuilder, context); modelBuilder.HasDbFunction( - typeof(GeoExtensions).GetMethod(nameof(GeoExtensions.Distance)), + typeof(GeoExtensions).GetMethod(nameof(GeoExtensions.Distance))!, b => b.HasTranslation(e => new SqlFunctionExpression( instance: e[0], "STDistance", diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyFixture.cs index 99f3067edef..5ce6c5817da 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyFixture.cs @@ -9,11 +9,9 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SpatialQuerySqlServerGeographyFixture : SpatialQuerySqlServerFixture { - private GeometryFactory _geometryFactory; + private GeometryFactory _geometryFactory = null!; public NtsGeometryServices GeometryServices => LazyInitializer.EnsureInitialized( @@ -43,9 +41,9 @@ protected class ReplacementTypeMappingSource( ISqlServerSingletonOptions sqlServerSingletonOptions) : SqlServerTypeMappingSource(dependencies, relationalDependencies, sqlServerSingletonOptions) { - protected override RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => mappingInfo.ClrType == typeof(GeoPoint) - ? ((RelationalTypeMapping)base.FindMapping(typeof(Point)) + ? ((RelationalTypeMapping)base.FindMapping(typeof(Point))! .WithComposedConverter(new GeoPointConverter(CreateGeometryServices().CreateGeometryFactory()))) .WithStoreTypeAndSize("geography", null) : base.FindMapping(mappingInfo); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs index 3aa5b108a51..3fc80244274 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeographyTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsSqlClrSupported))] public class SpatialQuerySqlServerGeographyTest : SpatialQueryRelationalTestBase { @@ -220,8 +218,8 @@ public virtual async Task CurveToLine(bool async) { await AssertQuery( async, - ss => ss.Set().Select(e => new { e.Id, CurveToLine = EF.Functions.CurveToLine(e.Polygon) }), - ss => ss.Set().Select(e => new { e.Id, CurveToLine = (Geometry)e.Polygon }), + ss => ss.Set().Select(e => new { e.Id, CurveToLine = EF.Functions.CurveToLine(e.Polygon!) }), + ss => ss.Set().Select(e => new { e.Id, CurveToLine = (Geometry)e.Polygon! }), elementSorter: x => x.Id, elementAsserter: (e, a) => { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryFixture.cs index 712e71fd569..00435bbeea0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryFixture.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SpatialQuerySqlServerGeometryFixture : SpatialQuerySqlServerFixture { protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context) @@ -40,9 +38,9 @@ protected class ReplacementTypeMappingSource( ISqlServerSingletonOptions sqlServerSingletonOptions) : SqlServerTypeMappingSource(dependencies, relationalDependencies, sqlServerSingletonOptions) { - protected override RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => mappingInfo.ClrType == typeof(GeoPoint) - ? ((RelationalTypeMapping)base.FindMapping(typeof(Point)) + ? ((RelationalTypeMapping)base.FindMapping(typeof(Point))! .WithComposedConverter(new GeoPointConverter())).WithStoreTypeAndSize("geometry", null) : base.FindMapping(mappingInfo); } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs index 6818faaca92..94563aae9d8 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SpatialQuerySqlServerGeometryTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsSqlClrSupported))] public class SpatialQuerySqlServerGeometryTest : SpatialQueryRelationalTestBase { @@ -247,8 +245,8 @@ public virtual async Task CurveToLine(bool async) { await AssertQuery( async, - ss => ss.Set().Select(e => new { e.Id, CurveToLine = EF.Functions.CurveToLine(e.Polygon) }), - ss => ss.Set().Select(e => new { e.Id, CurveToLine = (Geometry)e.Polygon }), + ss => ss.Set().Select(e => new { e.Id, CurveToLine = EF.Functions.CurveToLine(e.Polygon!) }), + ss => ss.Set().Select(e => new { e.Id, CurveToLine = (Geometry)e.Polygon! }), elementSorter: x => x.Id, elementAsserter: (e, a) => { @@ -340,7 +338,7 @@ public override async Task Distance_constant_srid_4326(bool async) await AssertQuery( async, ss => ss.Set() - .Select(e => new { e.Id, Distance = (double?)e.Point.Distance(new Point(1, 1) { SRID = 4326 }) }), + .Select(e => new { e.Id, Distance = (double?)e.Point!.Distance(new Point(1, 1) { SRID = 4326 }) }), ss => ss.Set().Select(e => new { e.Id, Distance = e.Point == null ? (double?)null : e.Point.Distance(new Point(1, 1) { SRID = 4326 }) }), elementSorter: e => e.Id, diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SqlExecutorSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SqlExecutorSqlServerTest.cs index 7d0baf4ea8e..011a113bc90 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SqlExecutorSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SqlExecutorSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SqlExecutorSqlServerTest : SqlExecutorTestBase> { public SqlExecutorSqlServerTest(NorthwindQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/SqlQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/SqlQuerySqlServerTest.cs index c9936d9d0b5..b43190b9402 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/SqlQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/SqlQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SqlQuerySqlServerTest : SqlQueryTestBase> { public SqlQuerySqlServerTest(NorthwindQuerySqlServerFixture fixture, ITestOutputHelper testOutputHelper) @@ -372,7 +370,7 @@ public override async Task SqlQueryRaw_queryable_with_parameters_and_clo WHERE [m].[ContactTitle] = @contactTitle """); - return null; + return null!; } public override async Task SqlQueryRaw_queryable_simple_cache_key_includes_query_string(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsQuerySqlServerTest.cs index edbf4bea3fd..c5fc2fc94a7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TemporalComplexNavigationsCollectionsQuerySqlServerTest : ComplexNavigationsCollectionsQueryRelationalTestBase diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs index 5b867cdb637..c26e6a669ad 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsCollectionsSharedTypeQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalComplexNavigationsCollectionsSharedTypeQuerySqlServerTest : ComplexNavigationsCollectionsSharedTypeQueryRelationalTestBase< TemporalComplexNavigationsSharedTypeQuerySqlServerFixture> diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsQuerySqlServerFixture.cs index 77f0e8c7d9b..c51af3b9d85 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalComplexNavigationsQuerySqlServerFixture : ComplexNavigationsQuerySqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsSharedTypeQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsSharedTypeQuerySqlServerFixture.cs index 1b3c07a58ef..22ebecaa249 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsSharedTypeQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalComplexNavigationsSharedTypeQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalComplexNavigationsSharedTypeQuerySqlServerFixture : ComplexNavigationsSharedTypeQuerySqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerFixture.cs index 35282232f74..95a7c5511da 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalGearsOfWarQuerySqlServerFixture : GearsOfWarQuerySqlServerFixture { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerTest.cs index 0c90381e68b..33a38399135 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalGearsOfWarQuerySqlServerTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TemporalGearsOfWarQuerySqlServerTest : GearsOfWarQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerFixture.cs index 520829e07cd..43dd02233b5 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalManyToManyQuerySqlServerFixture : ManyToManyQueryFixtureBase, ITestSqlLoggerFactory { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerTest.cs index b1dd54be848..8a1a583dc16 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalManyToManyQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TemporalManyToManyQuerySqlServerTest : ManyToManyQueryRelationalTestBase { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalOwnedQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalOwnedQuerySqlServerTest.cs index 32f840d7d2d..ae702060f79 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalOwnedQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalOwnedQuerySqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TemporalOwnedQuerySqlServerTest : OwnedQueryRelationalTestBase< TemporalOwnedQuerySqlServerTest.TemporalOwnedQuerySqlServerFixture> diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalPointInTimeQueryRewriter.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalPointInTimeQueryRewriter.cs index 78c58f8c161..02803c55b2d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalPointInTimeQueryRewriter.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalPointInTimeQueryRewriter.cs @@ -5,15 +5,13 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class TemporalPointInTimeQueryRewriter(DateTime pointInTime, List temporalEntityTypes) : ExpressionVisitor { private static readonly MethodInfo _setMethodInfo - = typeof(ISetSource).GetMethod(nameof(ISetSource.Set)); + = typeof(ISetSource).GetMethod(nameof(ISetSource.Set))!; private static readonly MethodInfo _asOfMethodInfo - = typeof(SqlServerDbSetExtensions).GetMethod(nameof(SqlServerDbSetExtensions.TemporalAsOf)); + = typeof(SqlServerDbSetExtensions).GetMethod(nameof(SqlServerDbSetExtensions.TemporalAsOf))!; private readonly DateTime _pointInTime = pointInTime; @@ -24,7 +22,7 @@ protected override Expression VisitExtension(Expression extensionExpression) => extensionExpression is EntityQueryRootExpression queryRootExpression && queryRootExpression.EntityType.GetRootType().IsTemporal() ? new TemporalAsOfQueryRootExpression( - queryRootExpression.QueryProvider, + queryRootExpression.QueryProvider!, queryRootExpression.EntityType, _pointInTime) : base.VisitExtension(extensionExpression); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalTableSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalTableSqlServerTest.cs index 1d1e90ae8c8..bf554aec19d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TemporalTableSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TemporalTableSqlServerTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsTemporalTablesCascadeDeleteSupported))] public class TemporalTableSqlServerTest(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture { @@ -321,54 +319,54 @@ WHERE [m0].[Id] < 30 public class MainEntityDifferentTable { public int Id { get; set; } - public string Description { get; set; } - public OwnedEntityDifferentTable OwnedEntity { get; set; } + public string? Description { get; set; } + public OwnedEntityDifferentTable? OwnedEntity { get; set; } } public class OwnedEntityDifferentTable { - public string Description { get; set; } + public string? Description { get; set; } } public class MainEntitySameTable { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public OwnedEntitySameTable OwnedEntity { get; set; } + public OwnedEntitySameTable? OwnedEntity { get; set; } } public class OwnedEntitySameTable { - public string Name { get; set; } + public string? Name { get; set; } public int Number { get; set; } - public OwnedEntitySameTableNested Nested { get; set; } + public OwnedEntitySameTableNested? Nested { get; set; } } public class OwnedEntitySameTableNested { - public string Name { get; set; } + public string? Name { get; set; } public int Number { get; set; } } public class MainEntityMany { public int Id { get; set; } - public string Name { get; set; } - public List OwnedCollection { get; set; } + public string? Name { get; set; } + public List OwnedCollection { get; set; } = null!; } public class OwnedEntityMany { - public string Name { get; set; } + public string? Name { get; set; } } public class MyContext26451(DbContextOptions options) : DbContext(options) { - public DbSet MainEntitiesDifferentTable { get; set; } - public DbSet MainEntitiesSameTable { get; set; } - public DbSet MainEntitiesMany { get; set; } + public DbSet MainEntitiesDifferentTable { get; set; } = null!; + public DbSet MainEntitiesSameTable { get; set; } = null!; + public DbSet MainEntitiesMany { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -495,14 +493,14 @@ public virtual async Task Temporal_with_CLR_period_properties_configured_via_lam public class TemporalCustomerWithClrPeriods { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public DateTime PeriodStart { get; set; } public DateTime PeriodEnd { get; set; } } public class ContextWithClrPeriodProperties(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -518,7 +516,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class ContextWithClrPeriodPropertiesLambda(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ToSqlQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ToSqlQuerySqlServerTest.cs index 57ab0ea8132..a24eebf65bb 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ToSqlQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ToSqlQuerySqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ToSqlQuerySqlServerTest(NonSharedFixture fixture) : ToSqlQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/UdfDbFunctionSqlServerTests.cs b/test/EFCore.SqlServer.FunctionalTests/Query/UdfDbFunctionSqlServerTests.cs index ee54b8b591a..055870a8e90 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/UdfDbFunctionSqlServerTests.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/UdfDbFunctionSqlServerTests.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class UdfDbFunctionSqlServerTests : UdfDbFunctionTestBase { public UdfDbFunctionSqlServerTests(SqlServer fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/WarningsSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/WarningsSqlServerTest.cs index a70b877dd49..0214e6e876d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/WarningsSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/WarningsSqlServerTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class WarningsSqlServerTest(NorthwindQuerySqlServerFixture fixture) : WarningsTestBase>(fixture); diff --git a/test/EFCore.SqlServer.FunctionalTests/QueryExpressionInterceptionSqlServerTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/QueryExpressionInterceptionSqlServerTestBase.cs index 99b20b338c0..eb497edd91c 100644 --- a/test/EFCore.SqlServer.FunctionalTests/QueryExpressionInterceptionSqlServerTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/QueryExpressionInterceptionSqlServerTestBase.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class QueryExpressionInterceptionSqlServerTestBase( QueryExpressionInterceptionSqlServerTestBase.InterceptionSqlServerFixtureBase fixture) : QueryExpressionInterceptionTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/SaveChangesInterceptionSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/SaveChangesInterceptionSqlServerTest.cs index 46f991f1334..2331280c46e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SaveChangesInterceptionSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SaveChangesInterceptionSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class SaveChangesInterceptionSqlServerTestBase( SaveChangesInterceptionSqlServerTestBase.InterceptionSqlServerFixtureBase fixture) : SaveChangesInterceptionTestBase(fixture) @@ -30,7 +28,7 @@ public virtual async Task Intercept_concurrency_with_relational_specific_data(bo using var listener = Fixture.SubscribeToDiagnosticListener(context.ContextId); - Exception thrown = null; + Exception? thrown = null; try { @@ -67,9 +65,9 @@ public virtual async Task Intercept_concurrency_with_relational_specific_data(bo protected class RelationalConcurrencySaveChangesInterceptor : SaveChangesInterceptorBase { - public DbConnection Connection { get; set; } - public DbCommand Command { get; set; } - public DbDataReader DataReader { get; set; } + public DbConnection Connection { get; set; } = null!; + public DbCommand Command { get; set; } = null!; + public DbDataReader DataReader { get; set; } = null!; public Guid CommandId { get; set; } public Guid ConnectionId { get; set; } @@ -106,9 +104,9 @@ private void RecordEventData(RelationalConcurrencyExceptionEventData eventData) protected class TestCommandInterceptor : IDbCommandInterceptor { - public DbConnection Connection { get; set; } - public DbCommand Command { get; set; } - public DbDataReader DataReader { get; set; } + public DbConnection Connection { get; set; } = null!; + public DbCommand Command { get; set; } = null!; + public DbDataReader DataReader { get; set; } = null!; public Guid CommandId { get; set; } public Guid ConnectionId { get; set; } @@ -137,7 +135,7 @@ private void RecordEventData(DbCommand command, CommandExecutedEventData eventDa { DataReader = result; Command = command; - Connection = command.Connection; + Connection = command.Connection!; ConnectionId = eventData.ConnectionId; CommandId = eventData.CommandId; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SeedingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/SeedingSqlServerTest.cs index fc4862ab33e..fe320b570e7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SeedingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SeedingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SeedingSqlServerTest : SeedingTestBase { protected override TestStore TestStore diff --git a/test/EFCore.SqlServer.FunctionalTests/SequenceEndToEndTest.cs b/test/EFCore.SqlServer.FunctionalTests/SequenceEndToEndTest.cs index f85cb1d5832..5d9916d36c4 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SequenceEndToEndTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SequenceEndToEndTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SequenceEndToEndTest : IAsyncLifetime { [Fact] @@ -274,7 +272,7 @@ private class BronieContext(IServiceProvider serviceProvider, string databaseNam private readonly string _databaseName = databaseName; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Pegasuses { get; set; } + public DbSet Pegasuses { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -292,7 +290,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class Pegasus { public int Identifier { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } [Fact] // Issue #478 @@ -372,7 +370,7 @@ private class NullableBronieContext(IServiceProvider serviceProvider, string dat private readonly bool _useSequence = useSequence; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Unicons { get; set; } + public DbSet Unicons { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -397,10 +395,10 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class Unicon { public int? Identifier { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } - protected SqlServerTestStore TestStore { get; private set; } + protected SqlServerTestStore TestStore { get; private set; } = null!; public async ValueTask InitializeAsync() => TestStore = await SqlServerTestStore.CreateInitializedAsync("SequenceEndToEndTest"); diff --git a/test/EFCore.SqlServer.FunctionalTests/SequentialGuidEndToEndTest.cs b/test/EFCore.SqlServer.FunctionalTests/SequentialGuidEndToEndTest.cs index 842d41db4f5..662de0bc06e 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SequentialGuidEndToEndTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SequentialGuidEndToEndTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SequentialGuidEndToEndTest : IAsyncLifetime { [Fact] @@ -86,7 +84,7 @@ private class BronieContext(IServiceProvider serviceProvider, string databaseNam private readonly string _databaseName = databaseName; // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Pegasuses { get; set; } + public DbSet Pegasuses { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -97,11 +95,11 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) private class Pegasus { public Guid Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public int Index { get; set; } } - protected SqlServerTestStore TestStore { get; private set; } + protected SqlServerTestStore TestStore { get; private set; } = null!; public async ValueTask InitializeAsync() => TestStore = await SqlServerTestStore.CreateInitializedAsync("SequentialGuidEndToEndTest"); diff --git a/test/EFCore.SqlServer.FunctionalTests/SerializationSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/SerializationSqlServerTest.cs index 2459b83c9a4..1bcf95a8f88 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SerializationSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SerializationSqlServerTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SerializationSqlServerTest(F1SqlServerFixture fixture) : SerializationTestBase(fixture); diff --git a/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerFixture.cs index 00da763b2b7..9cb00ee86fc 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SpatialSqlServerFixture : SpatialFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerTest.cs index cd27d9913d4..2f1a05db755 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SpatialSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsSqlClrSupported))] public class SpatialSqlServerTest(SpatialSqlServerFixture fixture) : SpatialTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/BatchingSqlAzureFixture.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/BatchingSqlAzureFixture.cs index 60ddfe35c96..8632c6272cd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/BatchingSqlAzureFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/BatchingSqlAzureFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - public class BatchingSqlAzureFixture : SqlAzureFixture { public AdventureWorksContext CreateContext(int maxBatchSize) diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Address.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Address.cs index 8f1097fdbe4..39ef58ddad0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Address.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Address.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("Address", Schema = "SalesLT")] public class Address { @@ -17,20 +15,20 @@ public Address() public int AddressID { get; set; } [Required, MaxLength(60)] - public string AddressLine1 { get; set; } + public string AddressLine1 { get; set; } = null!; [MaxLength(60)] - public string AddressLine2 { get; set; } + public string? AddressLine2 { get; set; } [Required, MaxLength(30)] - public string City { get; set; } + public string City { get; set; } = null!; public DateTime ModifiedDate { get; set; } - public string CountryRegion { get; set; } - public string StateProvince { get; set; } + public string? CountryRegion { get; set; } + public string? StateProvince { get; set; } [Required, MaxLength(15)] - public string PostalCode { get; set; } + public string PostalCode { get; set; } = null!; public Guid rowguid { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/AdventureWorksContext.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/AdventureWorksContext.cs index 866d346583b..ffe8c675389 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/AdventureWorksContext.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/AdventureWorksContext.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - public class AdventureWorksContext(DbContextOptions options) : PoolableDbContext(options) { protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -254,14 +252,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.HasSequence("SalesOrderNumber", "SalesLT"); } - public virtual DbSet
Addresses { get; set; } - public virtual DbSet Customers { get; set; } - public virtual DbSet CustomerAddresses { get; set; } - public virtual DbSet Products { get; set; } - public virtual DbSet ProductCategories { get; set; } - public virtual DbSet ProductDescriptions { get; set; } - public virtual DbSet ProductModels { get; set; } - public virtual DbSet ProductModelProductDescriptions { get; set; } - public virtual DbSet SalesOrderDetails { get; set; } - public virtual DbSet SalesOrders { get; set; } + public virtual DbSet
Addresses { get; set; } = null!; + public virtual DbSet Customers { get; set; } = null!; + public virtual DbSet CustomerAddresses { get; set; } = null!; + public virtual DbSet Products { get; set; } = null!; + public virtual DbSet ProductCategories { get; set; } = null!; + public virtual DbSet ProductDescriptions { get; set; } = null!; + public virtual DbSet ProductModels { get; set; } = null!; + public virtual DbSet ProductModelProductDescriptions { get; set; } = null!; + public virtual DbSet SalesOrderDetails { get; set; } = null!; + public virtual DbSet SalesOrders { get; set; } = null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Customer.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Customer.cs index 6375defae3c..f369526943d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Customer.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Customer.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("Customer", Schema = "SalesLT")] public class Customer { @@ -21,33 +19,33 @@ public Customer() public bool NameStyle { get; set; } - public string FirstName { get; set; } - public string MiddleName { get; set; } - public string LastName { get; set; } - public string Phone { get; set; } + public string? FirstName { get; set; } + public string? MiddleName { get; set; } + public string? LastName { get; set; } + public string? Phone { get; set; } [MaxLength(128)] - public string CompanyName { get; set; } + public string? CompanyName { get; set; } [MaxLength(50)] - public string EmailAddress { get; set; } + public string? EmailAddress { get; set; } public DateTime ModifiedDate { get; set; } [Required, MaxLength(128)] - public string PasswordHash { get; set; } + public string PasswordHash { get; set; } = null!; [Required, MaxLength(10)] - public string PasswordSalt { get; set; } + public string PasswordSalt { get; set; } = null!; [MaxLength(256)] - public string SalesPerson { get; set; } + public string? SalesPerson { get; set; } [MaxLength(10)] - public string Suffix { get; set; } + public string? Suffix { get; set; } [MaxLength(8)] - public string Title { get; set; } + public string? Title { get; set; } public Guid rowguid { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/CustomerAddress.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/CustomerAddress.cs index 4b7d1d60b1c..f24b144b334 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/CustomerAddress.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/CustomerAddress.cs @@ -5,20 +5,18 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("CustomerAddress", Schema = "SalesLT")] public class CustomerAddress { public int CustomerID { get; set; } public int AddressID { get; set; } - public string AddressType { get; set; } + public string? AddressType { get; set; } public DateTime ModifiedDate { get; set; } public Guid rowguid { get; set; } [ForeignKey("AddressID"), InverseProperty("CustomerAddress")] - public virtual Address Address { get; set; } + public virtual Address Address { get; set; } = null!; [ForeignKey("CustomerID"), InverseProperty("CustomerAddress")] - public virtual Customer Customer { get; set; } + public virtual Customer Customer { get; set; } = null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Product.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Product.cs index 7d35f69e731..a1de8cb86ad 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Product.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/Product.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("Product", Schema = "SalesLT")] public class Product { @@ -17,10 +15,10 @@ public Product() public int ProductID { get; set; } [Required] - public string Name { get; set; } + public string Name { get; set; } = null!; [MaxLength(15)] - public string Color { get; set; } + public string? Color { get; set; } public DateTime? DiscontinuedDate { get; set; } public decimal ListPrice { get; set; } @@ -29,19 +27,19 @@ public Product() public int? ProductModelID { get; set; } [Required, MaxLength(25)] - public string ProductNumber { get; set; } + public string ProductNumber { get; set; } = null!; public DateTime? SellEndDate { get; set; } public DateTime SellStartDate { get; set; } [MaxLength(5)] - public string Size { get; set; } + public string? Size { get; set; } public decimal StandardCost { get; set; } - public byte[] ThumbNailPhoto { get; set; } + public byte[]? ThumbNailPhoto { get; set; } [MaxLength(50)] - public string ThumbnailPhotoFileName { get; set; } + public string? ThumbnailPhotoFileName { get; set; } public decimal? Weight { get; set; } public Guid rowguid { get; set; } @@ -50,8 +48,8 @@ public Product() public virtual ICollection OrderDetails { get; set; } [ForeignKey("ProductCategoryID"), InverseProperty("Product")] - public virtual ProductCategory ProductCategory { get; set; } + public virtual ProductCategory? ProductCategory { get; set; } [ForeignKey("ProductModelID"), InverseProperty("Product")] - public virtual ProductModel ProductModel { get; set; } + public virtual ProductModel? ProductModel { get; set; } } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductCategory.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductCategory.cs index bc58b3be242..2ef142c80f4 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductCategory.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductCategory.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("ProductCategory", Schema = "SalesLT")] public class ProductCategory { @@ -14,7 +12,7 @@ public ProductCategory() => Product = new HashSet(); public int ProductCategoryID { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public DateTime ModifiedDate { get; set; } public int? ParentProductCategoryID { get; set; } public Guid rowguid { get; set; } @@ -23,8 +21,8 @@ public ProductCategory() public virtual ICollection Product { get; set; } [ForeignKey("ParentProductCategoryID"), InverseProperty("InverseParentProductCategory")] - public virtual ProductCategory ParentProductCategory { get; set; } + public virtual ProductCategory? ParentProductCategory { get; set; } [InverseProperty("ParentProductCategory")] - public virtual ICollection InverseParentProductCategory { get; set; } + public virtual ICollection InverseParentProductCategory { get; set; } = null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductDescription.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductDescription.cs index 86a39638658..bc09ebbfc65 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductDescription.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductDescription.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("ProductDescription", Schema = "SalesLT")] public class ProductDescription { @@ -17,7 +15,7 @@ public ProductDescription() public int ProductDescriptionID { get; set; } [Required, MaxLength(400)] - public string Description { get; set; } + public string Description { get; set; } = null!; public DateTime ModifiedDate { get; set; } public Guid rowguid { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModel.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModel.cs index 90260c0e2de..dd0de68ffa2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModel.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModel.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("ProductModel", Schema = "SalesLT")] public class ProductModel { @@ -17,8 +15,8 @@ public ProductModel() } public int ProductModelID { get; set; } - public string Name { get; set; } - public string CatalogDescription { get; set; } + public string? Name { get; set; } + public string? CatalogDescription { get; set; } public DateTime ModifiedDate { get; set; } public Guid rowguid { get; set; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModelProductDescription.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModelProductDescription.cs index 684c0740a4f..e7146261260 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModelProductDescription.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/ProductModelProductDescription.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("ProductModelProductDescription", Schema = "SalesLT")] public class ProductModelProductDescription { @@ -15,14 +13,14 @@ public class ProductModelProductDescription public int ProductDescriptionID { get; set; } [MaxLength(6)] - public string Culture { get; set; } + public string Culture { get; set; } = null!; public DateTime ModifiedDate { get; set; } public Guid rowguid { get; set; } [ForeignKey("ProductDescriptionID"), InverseProperty("ProductModelProductDescription")] - public virtual ProductDescription ProductDescription { get; set; } + public virtual ProductDescription ProductDescription { get; set; } = null!; [ForeignKey("ProductModelID"), InverseProperty("ProductModelProductDescription")] - public virtual ProductModel ProductModel { get; set; } + public virtual ProductModel ProductModel { get; set; } = null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrder.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrder.cs index 7047fdf23f2..7224ecfa5c0 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrder.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrder.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("SalesOrderHeader", Schema = "SalesLT")] public class SalesOrder { @@ -15,12 +13,12 @@ public SalesOrder() => Details = new HashSet(); public int SalesOrderID { get; set; } - public string AccountNumber { get; set; } + public string? AccountNumber { get; set; } public int? BillToAddressID { get; set; } - public string Comment { get; set; } + public string? Comment { get; set; } [MaxLength(15)] - public string CreditCardApprovalCode { get; set; } + public string? CreditCardApprovalCode { get; set; } public int CustomerID { get; set; } @@ -32,16 +30,16 @@ public SalesOrder() public bool IsOnlineOrder { get; set; } public DateTime OrderDate { get; set; } - public string PurchaseOrderNumber { get; set; } + public string? PurchaseOrderNumber { get; set; } public byte RevisionNumber { get; set; } [Required, MaxLength(25)] - public string SalesOrderNumber { get; set; } + public string SalesOrderNumber { get; set; } = null!; public DateTime? ShipDate { get; set; } [Required, MaxLength(50)] - public string ShipMethod { get; set; } + public string ShipMethod { get; set; } = null!; public int? ShipToAddressID { get; set; } public byte Status { get; set; } @@ -54,11 +52,11 @@ public SalesOrder() public virtual ICollection Details { get; set; } [ForeignKey("CustomerID"), InverseProperty("Orders")] - public virtual Customer Customer { get; set; } + public virtual Customer Customer { get; set; } = null!; [ForeignKey("BillToAddressID")] - public virtual Address BillToAddress { get; set; } + public virtual Address? BillToAddress { get; set; } [ForeignKey("ShipToAddressID")] - public virtual Address ShipToAddress { get; set; } + public virtual Address? ShipToAddress { get; set; } } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrderDetail.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrderDetail.cs index cab1d2f4663..d5030809d51 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrderDetail.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/Model/SalesOrderDetail.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure.Model; -#nullable disable - [Table("SalesOrderDetail", Schema = "SalesLT")] public class SalesOrderDetail { @@ -21,8 +19,8 @@ public class SalesOrderDetail public Guid rowguid { get; set; } [ForeignKey("ProductID"), InverseProperty("OrderDetails")] - public virtual Product Product { get; set; } + public virtual Product Product { get; set; } = null!; [ForeignKey("SalesOrderID"), InverseProperty("Details")] - public virtual SalesOrder SalesOrder { get; set; } + public virtual SalesOrder SalesOrder { get; set; } = null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureBatchingTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureBatchingTest.cs index 98db89edfdf..ed5b77a0108 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureBatchingTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureBatchingTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsAzureSql))] public class SqlAzureBatchingTest(BatchingSqlAzureFixture fixture) : IClassFixture { diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureConnectionTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureConnectionTest.cs index d8113f30800..fac7d333bf4 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureConnectionTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureConnectionTest.cs @@ -8,8 +8,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsAzureSql))] #pragma warning disable CS9113 // Parameter is unread. public class SqlAzureConnectionTest(SqlAzureFixture fixture) : IClassFixture diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureDatabaseCreationTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureDatabaseCreationTest.cs index 6d6b74d80c5..b523638a9b8 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureDatabaseCreationTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureDatabaseCreationTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsAzureSql))] public class SqlAzureDatabaseCreationTest { @@ -28,8 +26,8 @@ private class ElasticPoolContext(SqlServerTestStore testStore) : DbContext { private readonly string _connectionString = testStore.ConnectionString; - public DbSet FastUns { get; set; } - public DbSet BigUns { get; set; } + public DbSet FastUns { get; set; } = null!; + public DbSet BigUns { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(_connectionString, b => b.ApplyConfiguration()); @@ -53,8 +51,8 @@ private class BasicContext(SqlServerTestStore testStore) : DbContext { private readonly string _connectionString = testStore.ConnectionString; - public DbSet FastUns { get; set; } - public DbSet BigUns { get; set; } + public DbSet FastUns { get; set; } = null!; + public DbSet BigUns { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(_connectionString, b => b.ApplyConfiguration()); @@ -82,8 +80,8 @@ private class BusinessCriticalContext(SqlServerTestStore testStore) : DbContext { private readonly string _connectionString = testStore.ConnectionString; - public DbSet FastUns { get; set; } - public DbSet BigUns { get; set; } + public DbSet FastUns { get; set; } = null!; + public DbSet BigUns { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(_connectionString, b => b.ApplyConfiguration()); @@ -121,13 +119,13 @@ SELECT DATABASEPROPERTYEX('{storeName}', 'EDITION'), private class BigUn { public int Id { get; set; } - public ICollection FastUns { get; set; } + public ICollection FastUns { get; set; } = null!; } private class FastUn { public int Id { get; set; } - public string Name { get; set; } - public BigUn BigUn { get; set; } + public string? Name { get; set; } + public BigUn? BigUn { get; set; } } } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFixture.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFixture.cs index 8766968901b..d479aa20566 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - public class SqlAzureFixture : SharedStoreFixtureBase { protected override string StoreName diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFundamentalsTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFundamentalsTest.cs index 5cc0ef7981b..1f24d52dbfe 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFundamentalsTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlAzure/SqlAzureFundamentalsTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.SqlAzure; -#nullable disable - [ConditionalClass(typeof(SqlServerTestEnvironment), nameof(SqlServerTestEnvironment.IsAzureSql))] public class SqlAzureFundamentalsTest(SqlAzureFixture fixture) : IClassFixture { diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerApiConsistencyTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerApiConsistencyTest.cs index e0b36aa8798..c8e5deecf1b 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerApiConsistencyTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerApiConsistencyTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerApiConsistencyTest(SqlServerApiConsistencyTest.SqlServerApiConsistencyFixture fixture) : ApiConsistencyTestBase(fixture) { @@ -22,10 +20,10 @@ public class SqlServerApiConsistencyFixture : ApiConsistencyFixtureBase [ typeof(SqlServerIndexExtensions).GetMethod( nameof(SqlServerIndexExtensions.SetFullTextLanguage), - [typeof(IMutableIndex), typeof(string), typeof(string)]), + [typeof(IMutableIndex), typeof(string), typeof(string)])!, typeof(SqlServerIndexExtensions).GetMethod( nameof(SqlServerIndexExtensions.SetFullTextLanguage), - [typeof(IConventionIndex), typeof(string), typeof(string), typeof(bool)]) + [typeof(IConventionIndex), typeof(string), typeof(string), typeof(bool)])! ]; public override HashSet FluentApiTypes { get; } = @@ -72,7 +70,7 @@ public override typeof(SqlServerModelExtensions), typeof(SqlServerModelExtensions), typeof(SqlServerModelBuilderExtensions), - null + null! ) }, { @@ -81,7 +79,7 @@ public override typeof(SqlServerEntityTypeExtensions), typeof(SqlServerEntityTypeExtensions), typeof(SqlServerEntityTypeBuilderExtensions), - null + null! ) }, { @@ -90,7 +88,7 @@ public override typeof(SqlServerKeyExtensions), typeof(SqlServerKeyExtensions), typeof(SqlServerKeyBuilderExtensions), - null + null! ) }, { @@ -99,7 +97,7 @@ public override typeof(SqlServerPropertyExtensions), typeof(SqlServerPropertyExtensions), typeof(SqlServerPropertyBuilderExtensions), - null + null! ) }, { @@ -108,16 +106,16 @@ public override typeof(SqlServerIndexExtensions), typeof(SqlServerIndexExtensions), typeof(SqlServerIndexBuilderExtensions), - null + null! ) }, { typeof(IReadOnlyElementType), ( - null, - null, - null, + null!, + null!, + null!, typeof(SqlServerEntityTypeBuilderExtensions), - null + null! ) } }; diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerComplianceTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerComplianceTest.cs index 5dc4e184926..e18bf4afb47 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerComplianceTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerComplianceTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerComplianceTest : RelationalComplianceTestBase { protected override ICollection IgnoredTestBases { get; } = []; diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerConfigPatternsTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerConfigPatternsTest.cs index 380a6c67f83..6ee7cd08820 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerConfigPatternsTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerConfigPatternsTest.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerConfigPatternsTest { public class ImplicitServicesAndConfig @@ -27,7 +25,7 @@ public async Task Can_query_with_implicit_services_and_OnConfiguring() private class NorthwindContext : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -59,7 +57,7 @@ public async Task Can_query_with_implicit_services_and_explicit_config() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -84,7 +82,7 @@ public async Task Can_query_with_explicit_services_and_OnConfiguring() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer( @@ -115,7 +113,7 @@ public async Task Can_query_with_explicit_services_and_explicit_config() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -145,7 +143,7 @@ public async Task Throws_on_attempt_to_use_SQL_Server_without_providing_connecti private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -171,7 +169,7 @@ public async Task Throws_on_attempt_to_use_context_with_no_store() private class NorthwindContext : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -206,7 +204,7 @@ public async Task Throws_on_attempt_to_use_store_with_no_store_services() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer( @@ -256,7 +254,7 @@ public NorthwindContext(DbContextOptions options) : base(options) => Assert.NotNull(options); - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer( @@ -308,7 +306,7 @@ public NorthwindContext(DbContextOptions options) : base(options) => Assert.NotNull(options); - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -333,7 +331,7 @@ public async Task Can_pass_context_options_to_constructor_and_use_in_builder() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -356,7 +354,7 @@ private class NorthwindContext(string connectionString) : DbContext { private readonly string _connectionString = connectionString; - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -400,7 +398,7 @@ private class NorthwindContext(IServiceProvider serviceProvider) : DbContext { private readonly IServiceProvider _serviceProvider = serviceProvider; - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -432,7 +430,7 @@ private class NorthwindContext(bool useAzure) : DbContext { private readonly bool _useAzure = useAzure; - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { @@ -470,7 +468,7 @@ public void Retry_strategy_properly_handled(bool before) private class NorthwindContext(bool before) : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -514,7 +512,7 @@ public void Retry_strategy_properly_handled(bool before) private class NorthwindContext(bool before) : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -558,7 +556,7 @@ public void Retry_strategy_properly_handled(bool before) private class NorthwindContext(bool before) : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -602,7 +600,7 @@ public void Retry_strategy_properly_handled(bool before) private class NorthwindContext(bool before) : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -638,7 +636,7 @@ public void Throws_when_two_engines_used() private class NorthwindContext : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -662,7 +660,7 @@ public void Throws_when_no_engine_configured() private class NorthwindContext : DbContext { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -768,7 +766,7 @@ public void Fallback_execution_strategy_does_not_overwrite_Configure_first() private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => ConfigureModel(modelBuilder); @@ -778,12 +776,12 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) // ReSharper disable once ClassNeverInstantiated.Local private class Customer { - public string CustomerID { get; set; } + public string CustomerID { get; set; } = null!; // ReSharper disable UnusedMember.Local - public string CompanyName { get; set; } + public string? CompanyName { get; set; } - public string Fax { get; set; } + public string? Fax { get; set; } // ReSharper restore UnusedMember.Local } @@ -802,13 +800,13 @@ public bool RetriesOnFailure public TResult Execute( TState state, Func operation, - Func> verifySucceeded) + Func>? verifySucceeded) => throw new NotImplementedException(); public Task ExecuteAsync( TState state, Func> operation, - Func>> verifySucceeded, + Func>>? verifySucceeded, CancellationToken cancellationToken = default) => throw new NotImplementedException(); } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerDatabaseCreatorTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerDatabaseCreatorTest.cs index a0e717e2c8d..8b98da1ee79 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerDatabaseCreatorTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerDatabaseCreatorTest.cs @@ -9,8 +9,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - // Tests are split into classes to enable parallel execution // Some combinations are skipped to reduce run time [SkipOnCI("Flaky on CI")] @@ -216,7 +214,7 @@ private static async Task Creates_physical_database_and_schema_test( await using var context = new BloggingContext(testDatabase); if (createDatabase) { - await testDatabase.InitializeAsync(null, (Func)null); + await testDatabase.InitializeAsync(null, (Func)null!); } else { @@ -371,7 +369,7 @@ await GetExecutionStrategy(testDatabase).ExecuteAsync(async () => public async Task Returns_true_when_database_exists_and_has_any_tables(bool async, bool ambientTransaction) { await using var testDatabase = await SqlServerTestStore.GetOrCreate("ExistingTables") - .InitializeSqlServerAsync(null, t => new BloggingContext(t), null); + .InitializeSqlServerAsync(null!, t => new BloggingContext(t), null!); var creator = GetDatabaseCreator(testDatabase); await GetExecutionStrategy(testDatabase).ExecuteAsync(async () => @@ -695,14 +693,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) b.Property(e => e.AndRow).IsConcurrencyToken().ValueGeneratedOnAddOrUpdate(); }); - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; } public class Blog { - public string Key1 { get; set; } - public byte[] Key2 { get; set; } - public string Cheese { get; set; } + public string Key1 { get; set; } = null!; + public byte[] Key2 { get; set; } = null!; + public string? Cheese { get; set; } public int ErMilan { get; set; } public bool George { get; set; } public Guid TheGu { get; set; } @@ -712,8 +710,8 @@ public class Blog public short Fuse { get; set; } public long WayRound { get; set; } public float On { get; set; } - public byte[] AndChew { get; set; } - public byte[] AndRow { get; set; } + public byte[]? AndChew { get; set; } + public byte[]? AndRow { get; set; } } public class TestDatabaseCreator( diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerEndToEndTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerEndToEndTest.cs index eeac7085dd2..2320182afc8 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerEndToEndTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerEndToEndTest.cs @@ -13,8 +13,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerEndToEndTest : IClassFixture { private const string DatabaseName = "SqlServerEndToEndTest"; @@ -120,15 +118,15 @@ public async Task Can_use_decimal_and_byte_as_identity_columns() private class NumNumContext(DbContextOptions options) : DbContext(options) { - public DbSet NownNums { get; set; } - public DbSet NumNums { get; set; } - public DbSet AnNums { get; set; } - public DbSet AdNums { get; set; } + public DbSet NownNums { get; set; } = null!; + public DbSet NumNums { get; set; } = null!; + public DbSet AnNums { get; set; } = null!; + public DbSet AdNums { get; set; } = null!; - public DbSet ByteNownNums { get; set; } - public DbSet ByteNums { get; set; } - public DbSet ByteAnNums { get; set; } - public DbSet ByteAdNums { get; set; } + public DbSet ByteNownNums { get; set; } = null!; + public DbSet ByteNums { get; set; } = null!; + public DbSet ByteAnNums { get; set; } = null!; + public DbSet ByteAdNums { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -164,13 +162,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class NownNum { public decimal Id { get; set; } - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private class NumNum { public decimal Id { get; set; } - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private class AnNum @@ -178,25 +176,25 @@ private class AnNum [Column(TypeName = "decimal(18, 0)"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public decimal Id { get; set; } - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private class AdNum { public decimal Id { get; set; } - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private class ByteNownNum { public byte Id { get; set; } - public string Lucy { get; set; } + public string? Lucy { get; set; } } private class ByteNum { public byte Id { get; set; } - public string Lucy { get; set; } + public string? Lucy { get; set; } } private class ByteAnNum @@ -204,13 +202,13 @@ private class ByteAnNum [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public byte Id { get; set; } - public string Lucy { get; set; } + public string? Lucy { get; set; } } private class ByteAdNum { public byte Id { get; set; } - public string Lucy { get; set; } + public string? Lucy { get; set; } } [Fact] // Issue #29931 @@ -242,7 +240,7 @@ private class TvpResult public int Id { get; set; } [Required] - public string Name { get; set; } + public string Name { get; set; } = null!; [Column(TypeName = "decimal(18,2)")] public decimal Total { get; set; } @@ -250,7 +248,7 @@ private class TvpResult private class RawResult { - public string Name { get; set; } + public string? Name { get; set; } } [Fact] @@ -319,9 +317,9 @@ public async Task Can_remove_multiple_byte_array_as_key() private class ENumContext(DbContextOptions options) : DbContext(options) { - public DbSet SNums { get; set; } - public DbSet EnNums { get; set; } - public DbSet BNums { get; set; } + public DbSet SNums { get; set; } = null!; + public DbSet EnNums { get; set; } = null!; + public DbSet BNums { get; set; } = null!; } [Fact] @@ -330,7 +328,7 @@ public async Task Can_add_table_splitting_dependent_after_principal() await using var testDatabase = await SqlServerTestStore.CreateInitializedAsync(DatabaseName); var options = Fixture.CreateOptions(testDatabase); - EvaluationAction evaluationAction = null; + EvaluationAction evaluationAction = null!; await using (var context = new ProjectContext(options)) { context.Database.EnsureCreatedResiliently(); @@ -392,8 +390,8 @@ public async Task Throws_when_adding_table_splitting_dependent_without_principal private class ProjectContext(DbContextOptions options) : DbContext(options) { - public DbSet EvaluationActions { get; set; } - public DbSet ProjectActions { get; set; } + public DbSet EvaluationActions { get; set; } = null!; + public DbSet ProjectActions { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -411,36 +409,36 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class ProjectAction { - public string Id { get; set; } - public string CreateId { get; set; } - public string UpdateId { get; set; } - public string Name { get; set; } + public string Id { get; set; } = null!; + public string? CreateId { get; set; } + public string? UpdateId { get; set; } + public string Name { get; set; } = null!; - public EvaluationAction EvaluationAction { get; set; } + public EvaluationAction EvaluationAction { get; set; } = null!; } private class EvaluationAction { - public string Id { get; set; } - public string CreateId { get; set; } - public string UpdateId { get; set; } + public string Id { get; set; } = null!; + public string? CreateId { get; set; } + public string? UpdateId { get; set; } - public ProjectAction ProjectAction { get; set; } + public ProjectAction? ProjectAction { get; set; } } private class SNum { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public string Id { get; set; } + public string Id { get; set; } = null!; - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private class EnNum { public ENum Id { get; set; } - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } private enum ENum @@ -454,9 +452,9 @@ private enum ENum private class BNum { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public byte[] Id { get; set; } + public byte[] Id { get; set; } = null!; - public string TheWalrus { get; set; } + public string? TheWalrus { get; set; } } [Fact] @@ -536,8 +534,8 @@ public async Task Can_insert_non_owner_principal_for_owned() private class FileContext(DbContextOptions options) : DbContext(options) { - public DbSet FileMetadata { get; set; } - public DbSet Categories { get; set; } + public DbSet FileMetadata { get; set; } = null!; + public DbSet Categories { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -563,7 +561,7 @@ private sealed class Category { public Guid Id { get; set; } - public FileSource Picture { get; set; } + public FileSource? Picture { get; set; } } private sealed class FileSource @@ -607,7 +605,7 @@ private class Car private class Ferrari : Car { - public Car Special { get; set; } + public Car? Special { get; set; } } [Fact] @@ -616,7 +614,7 @@ public async Task Can_run_linq_query_on_entity_set() await using var testStore = await SqlServerTestStore.GetNorthwindStoreAsync(); await using var db = new NorthwindContext(Fixture.CreateOptions(testStore)); var results = db.Customers - .Where(c => c.CompanyName.StartsWith("A")) + .Where(c => c.CompanyName!.StartsWith("A")) .OrderByDescending(c => c.CustomerID) .ToList(); @@ -638,7 +636,7 @@ public async Task Can_run_linq_query_on_entity_set_with_value_buffer_reader() await using var testStore = await SqlServerTestStore.GetNorthwindStoreAsync(); await using var db = new NorthwindContext(Fixture.CreateOptions(testStore)); var results = db.Customers - .Where(c => c.CompanyName.StartsWith("A")) + .Where(c => c.CompanyName!.StartsWith("A")) .OrderByDescending(c => c.CustomerID) .ToList(); @@ -847,7 +845,7 @@ public async Task Can_replace_identifying_FK_entity_with_many_to_many() var expectedCId = 0; using (var context = new SomeDbContext(options)) { - var entityA = context.EntitiesA.Include(x => x.EntityB).ThenInclude(x => x.EntitiesC).OrderBy(x => x.Id).First(); + var entityA = context.EntitiesA.Include(x => x.EntityB).ThenInclude(x => x!.EntitiesC).OrderBy(x => x.Id).First(); entityA.EntityB = new EntityB { EntitiesC = { new EntityC() } }; @@ -858,9 +856,9 @@ public async Task Can_replace_identifying_FK_entity_with_many_to_many() using (var context = new SomeDbContext(options)) { - var entityA = context.EntitiesA.Include(x => x.EntityB).ThenInclude(x => x.EntitiesC).OrderBy(x => x.Id).First(); + var entityA = context.EntitiesA.Include(x => x.EntityB).ThenInclude(x => x!.EntitiesC).OrderBy(x => x.Id).First(); - Assert.Equal(expectedCId, entityA.EntityB.EntitiesC.Single().Id); + Assert.Equal(expectedCId, entityA.EntityB!.EntitiesC.Single().Id); } } @@ -1070,9 +1068,9 @@ public class Enrollment private class UniversityContext(DbContextOptions options) : DbContext(options) { - public DbSet Students { get; set; } - public DbSet Courses { get; set; } - public DbSet Enrollments { get; set; } + public DbSet Students { get; set; } = null!; + public DbSet Courses { get; set; } = null!; + public DbSet Enrollments { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1151,13 +1149,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class EntityA { public int Id { get; set; } - public virtual EntityB EntityB { get; set; } + public virtual EntityB? EntityB { get; set; } } private class EntityB { public int Id { get; set; } - public virtual EntityA EntityA { get; set; } + public virtual EntityA EntityA { get; set; } = null!; public virtual ICollection EntitiesC { get; } = new List(); } @@ -1169,9 +1167,9 @@ private class EntityC private class SomeDbContext(DbContextOptions options) : DbContext(options) { - public DbSet EntitiesA { get; set; } - public DbSet EntitiesB { get; set; } - public DbSet EntitiesC { get; set; } + public DbSet EntitiesA { get; set; } = null!; + public DbSet EntitiesB { get; set; } = null!; + public DbSet EntitiesC { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder @@ -1304,7 +1302,7 @@ public async Task Can_include_on_loaded_entity() Assert.Equal(0, player.Items.Count); - context.Entry(player.CurrentWeapon).Property("ActorId").CurrentValue = 0; + context.Entry(player.CurrentWeapon!).Property("ActorId").CurrentValue = 0; context.Attach(player); @@ -1332,9 +1330,9 @@ protected Actor(Level level) } public virtual int Id { get; private set; } - public virtual Level Level { get; set; } + public virtual Level Level { get; set; } = null!; public virtual int GameId { get; private set; } - public virtual Game Game { get; set; } + public virtual Game Game { get; set; } = null!; public virtual ICollection Items { get; set; } = new HashSet(); } @@ -1349,7 +1347,7 @@ public PlayerCharacter(Level level) { } - public virtual string Name { get; set; } + public virtual string? Name { get; set; } public virtual int Strength { get; set; } public virtual int Dexterity { get; set; } @@ -1364,14 +1362,14 @@ public PlayerCharacter(Level level) public virtual int MaxMP { get; set; } public virtual int MP { get; set; } - public virtual Item CurrentWeapon { get; set; } + public virtual Item? CurrentWeapon { get; set; } } public class Level { public virtual int Id { get; set; } public virtual int GameId { get; set; } - public virtual Game Game { get; set; } + public virtual Game Game { get; set; } = null!; public virtual ICollection Actors { get; set; } = new HashSet(); public virtual ICollection Items { get; set; } = new HashSet(); } @@ -1380,9 +1378,9 @@ public class Item { public virtual int Id { get; set; } public virtual int GameId { get; set; } - public virtual Game Game { get; set; } - public virtual Level Level { get; set; } - public virtual Actor Actor { get; set; } + public virtual Game Game { get; set; } = null!; + public virtual Level? Level { get; set; } + public virtual Actor? Actor { get; set; } } public class Container : Item @@ -1399,10 +1397,10 @@ public class Game public class GameDbContext(DbContextOptions options) : DbContext(options) { - public DbSet Games { get; set; } - public DbSet Levels { get; set; } - public DbSet Characters { get; set; } - public DbSet Items { get; set; } + public DbSet Games { get; set; } = null!; + public DbSet Levels { get; set; } = null!; + public DbSet Characters { get; set; } = null!; + public DbSet Items { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1479,7 +1477,7 @@ public async Task Tracking_entities_asynchronously_returns_tracked_entities_back Assert.Same(trackedCustomerEntry.Entity, customer); // if references are different this will throw - db.Customers.Remove(customer); + db.Customers.Remove(customer!); } [Fact] // Issue #931 @@ -1510,8 +1508,8 @@ await context.AddAsync( private class SchemaContext(DbContextOptions options) : DbContext(options) { - public DbSet Jacks { get; set; } - public DbSet Blacks { get; set; } + public DbSet Jacks { get; set; } = null!; + public DbSet Blacks { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -1675,7 +1673,7 @@ private static async Task CreateBlogDatabaseAsync(DbContext cont private class NorthwindContext(DbContextOptions options) : DbContext(options) { - public DbSet Customers { get; set; } + public DbSet Customers { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(b => @@ -1687,9 +1685,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) private class Customer { - public string CustomerID { get; set; } - public string CompanyName { get; set; } - public string Fax { get; set; } + public string CustomerID { get; set; } = null!; + public string? CompanyName { get; set; } + public string? Fax { get; set; } } private class BloggingContext(DbContextOptions options) : BloggingContext(options); @@ -1697,7 +1695,7 @@ private class BloggingContext(DbContextOptions options) : BloggingContext( private class Blog : IBlog { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public bool George { get; set; } public Guid TheGu { get; set; } public DateTime NotFigTime { get; set; } @@ -1717,7 +1715,7 @@ private class Blog : IBlog public ushort OrULong { get; set; } public uint OrUSkint { get; set; } public ulong OrUShort { get; set; } - public byte[] AndChew { get; set; } + public byte[]? AndChew { get; set; } } private class BloggingContext(DbContextOptions options) : DbContext(options) @@ -1737,13 +1735,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().ToTable("Blog", "dbo"); } - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; } private interface IBlog { int Id { get; set; } - string Name { get; set; } + string? Name { get; set; } bool George { get; set; } Guid TheGu { get; set; } DateTime NotFigTime { get; set; } @@ -1763,13 +1761,13 @@ private interface IBlog ushort OrULong { get; set; } uint OrUSkint { get; set; } ulong OrUShort { get; set; } - byte[] AndChew { get; set; } + byte[]? AndChew { get; set; } } private class ChangedChangingBlog : INotifyPropertyChanging, INotifyPropertyChanged, IBlog { private int _id; - private string _name; + private string? _name; private bool _george; private Guid _theGu; private DateTime _notFigTime; @@ -1789,7 +1787,7 @@ private class ChangedChangingBlog : INotifyPropertyChanging, INotifyPropertyChan private ushort _orULong; private uint _orUSkint; private ulong _orUShort; - private byte[] _andChew; + private byte[]? _andChew; public int Id { @@ -1805,7 +1803,7 @@ public int Id } } - public string Name + public string? Name { get => _name; set @@ -2001,7 +1999,7 @@ public ulong OrUShort } } - public byte[] AndChew + public byte[]? AndChew { get => _andChew; set @@ -2015,8 +2013,8 @@ public byte[] AndChew } } - public event PropertyChangingEventHandler PropertyChanging; - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangingEventHandler? PropertyChanging; + public event PropertyChangedEventHandler? PropertyChanged; private void NotifyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); @@ -2028,7 +2026,7 @@ private void NotifyChanging([CallerMemberName] string propertyName = "") private class ChangedOnlyBlog : INotifyPropertyChanged, IBlog { private int _id; - private string _name; + private string? _name; private bool _george; private Guid _theGu; private DateTime _notFigTime; @@ -2048,7 +2046,7 @@ private class ChangedOnlyBlog : INotifyPropertyChanged, IBlog private ushort _orULong; private uint _orUSkint; private ulong _orUShort; - private byte[] _andChew; + private byte[]? _andChew; public int Id { @@ -2063,7 +2061,7 @@ public int Id } } - public string Name + public string? Name { get => _name; set @@ -2245,7 +2243,7 @@ public ulong OrUShort } } - public byte[] AndChew + public byte[]? AndChew { get => _andChew; set @@ -2258,7 +2256,7 @@ public byte[] AndChew } } - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; private void NotifyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerFixture.cs index ce5d199056c..276211a4ba1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerFixture : ServiceProviderFixtureBase { public static IServiceProvider DefaultServiceProvider { get; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerQueryTriggersTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerQueryTriggersTest.cs index 868a8b3a4b9..f5e533364ba 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerQueryTriggersTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerQueryTriggersTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerQueryTriggersTest(SqlServerQueryTriggersTest.SqlServerTriggersFixture fixture) : IClassFixture { @@ -80,7 +78,7 @@ protected QueryTriggersContext CreateContext() protected class QueryTriggersContext(DbContextOptions options) : PoolableDbContext(options) { - public virtual DbSet Products { get; set; } + public virtual DbSet Products { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity(eb => @@ -95,8 +93,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) protected class Product { public virtual int Id { get; set; } - public virtual byte[] Version { get; set; } - public virtual string Name { get; set; } + public virtual byte[]? Version { get; set; } + public virtual string? Name { get; set; } public virtual int StoreUpdated { get; set; } } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerSentinelValueGenerationScenariosTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerSentinelValueGenerationScenariosTest.cs index f8ae94a20da..cedf56438c8 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerSentinelValueGenerationScenariosTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerSentinelValueGenerationScenariosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerSentinelValueGenerationScenariosTest : SqlServerValueGenerationScenariosTestBase { protected override string DatabaseName diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerServiceCollectionExtensionsTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerServiceCollectionExtensionsTest.cs index 5b3598bfd30..938d9af594d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerServiceCollectionExtensionsTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerServiceCollectionExtensionsTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerServiceCollectionExtensionsTest() : RelationalServiceCollectionExtensionsTestBase(SqlServerTestHelpers.Instance); diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerTriggersTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerTriggersTest.cs index 1cb7815d24e..c022f0201d7 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerTriggersTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerTriggersTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerTriggersTest(SqlServerTriggersTest.SqlServerTriggersFixture fixture) : IClassFixture { @@ -93,8 +91,8 @@ protected TriggersContext CreateContext() protected class TriggersContext(DbContextOptions options) : PoolableDbContext(options) { - public virtual DbSet Products { get; set; } - public virtual DbSet ProductBackups { get; set; } + public virtual DbSet Products { get; set; } = null!; + public virtual DbSet ProductBackups { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -120,16 +118,16 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) protected class Product { public virtual int Id { get; set; } - public virtual byte[] Version { get; set; } - public virtual string Name { get; set; } + public virtual byte[] Version { get; set; } = null!; + public virtual string Name { get; set; } = null!; public virtual int StoreUpdated { get; set; } } protected class ProductBackup { public virtual int Id { get; set; } - public virtual byte[] Version { get; set; } - public virtual string Name { get; set; } + public virtual byte[] Version { get; set; } = null!; + public virtual string Name { get; set; } = null!; } public class SqlServerTriggersFixture : SharedStoreFixtureBase diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationConflictTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationConflictTest.cs index 4cce0edb594..0db681eecc1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationConflictTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationConflictTest.cs @@ -7,8 +7,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerValueGenerationStrategyThrowTest( SqlServerValueGenerationStrategyFixture fixture) : SqlServerValueGenerationConflictTest(fixture) @@ -53,7 +51,7 @@ public virtual void SqlServerValueGeneration_conflicting_with_existing_default_v public class ThrowContext(DbContextOptions options) : DbContext(options) { - public virtual DbSet Freds { get; set; } + public virtual DbSet Freds { get; set; } = null!; // use the normal behavior of ConflictingValueGenerationStrategiesWarning // defined in UseSqlServer() @@ -89,7 +87,7 @@ public virtual void SqlServerValueGeneration_conflicting_with_existing_ValueGene public class NoThrowContext(DbContextOptions options) : DbContext(options) { - public virtual DbSet Freds { get; set; } + public virtual DbSet Freds { get; set; } = null!; // override the normal behavior of ConflictingValueGenerationStrategiesWarning protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTest.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTest.cs index b94428ca885..17839f6a1b2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTest.cs @@ -6,8 +6,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqlServerValueGenerationScenariosTest : SqlServerValueGenerationScenariosTestBase { protected override string DatabaseName @@ -32,7 +30,7 @@ protected override int? NullableIntSentinel => null; protected override string StringSentinel - => null; + => null!; protected override DateTime DateTimeSentinel => new(); @@ -41,8 +39,8 @@ protected override NeedsConverter NeedsConverterSentinel => new(0); protected override GeometryCollection GeometryCollectionSentinel - => null; + => null!; protected override byte[] TimestampSentinel - => null; + => null!; } diff --git a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTestBase.cs index 0c229ab279b..2ef2b5f4bc1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/SqlServerValueGenerationScenariosTestBase.cs @@ -9,8 +9,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class SqlServerValueGenerationScenariosTestBase { protected static readonly GeometryFactory GeometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326); @@ -272,7 +270,7 @@ public class BlogContextStringDefaultValue(string databaseName, Action StringyBlogs { get; set; } + public DbSet StringyBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -292,8 +290,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithStringKey { - public string Id { get; set; } - public string Name { get; set; } + public string Id { get; set; } = null!; + public string? Name { get; set; } } [Fact] @@ -366,7 +364,7 @@ public class BlogContextUIntToIdentityUsingValueConverter(string databaseName, A { private readonly uint _uintSentinel = uintSentinel; - public DbSet UnsignedBlogs { get; set; } + public DbSet UnsignedBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -383,7 +381,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithUIntKey { public uint Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } [Fact] @@ -415,7 +413,7 @@ public class BlogContextIntEnumToIdentity(string databaseName, Action EnumBlogs { get; set; } + public DbSet EnumBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -432,7 +430,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithIntEnumKey { public IntKey Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } public enum IntKey @@ -471,7 +469,7 @@ public class BlogContextULongEnumToIdentity(string databaseName, Action EnumBlogs { get; set; } + public DbSet EnumBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -488,7 +486,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithULongEnumKey { public ULongKey Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } public enum ULongKey : ulong @@ -526,7 +524,7 @@ public class BlogContextStringToIdentityUsingValueConverter(string databaseName, { private readonly string _sentinel = sentinel; - public DbSet StringyBlogs { get; set; } + public DbSet StringyBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -658,7 +656,7 @@ public async Task Insert_with_non_key_default_value() Assert.NotEqual(new DateTime(), blogs[0].CreatedOn); Assert.NotEqual(new DateTime(), blogs[1].CreatedOn); - Assert.Equal(111, blogs[1].NeedsConverter.Value); + Assert.Equal(111, blogs[1].NeedsConverter!.Value); } await using (var context = new BlogContextNonKeyDefaultValue(testStore.Name, OnModelCreating)) @@ -688,9 +686,9 @@ public async Task Insert_with_non_key_default_value() Assert.Equal(new DateTime(1973, 9, 3, 0, 10, 0), blogs[0].CreatedOn); Assert.Equal(new DateTime(1969, 8, 3, 0, 10, 0), blogs[1].CreatedOn); - Assert.Equal(222, blogs[1].NeedsConverter.Value); + Assert.Equal(222, blogs[1].NeedsConverter!.Value); Assert.Equal(new DateTime(1974, 8, 3, 0, 10, 0), blogs[2].CreatedOn); - Assert.Equal(333, blogs[2].NeedsConverter.Value); + Assert.Equal(333, blogs[2].NeedsConverter!.Value); } } @@ -724,7 +722,7 @@ public async Task Insert_with_non_key_default_spatial_value() context.SaveChanges(); - var point = (Point)blogs[1].GeometryCollection.Geometries[0]; + var point = (Point)blogs[1].GeometryCollection!.Geometries[0]; Assert.Equal(1, point.X); Assert.Equal(3, point.Y); } @@ -734,16 +732,16 @@ public async Task Insert_with_non_key_default_spatial_value() var blogs = context.SpatialBlogs.OrderBy(e => e.Name).ToList(); Assert.Equal(3, blogs.Count); - var point1 = (Point)blogs[1].GeometryCollection.Geometries[0]; + var point1 = (Point)blogs[1].GeometryCollection!.Geometries[0]; Assert.Equal(1, point1.X); Assert.Equal(3, point1.Y); - var point2 = (Point)blogs[2].GeometryCollection.Geometries[0]; + var point2 = (Point)blogs[2].GeometryCollection!.Geometries[0]; Assert.Equal(1, point2.X); Assert.Equal(2, point2.Y); - blogs[1].GeometryCollection.Geometries[0] = GeometryFactory.CreatePoint(new Coordinate(1, 11)); - blogs[2].GeometryCollection.Geometries[0] = GeometryFactory.CreatePoint(new Coordinate(1, 22)); + blogs[1].GeometryCollection!.Geometries[0] = GeometryFactory.CreatePoint(new Coordinate(1, 11)); + blogs[2].GeometryCollection!.Geometries[0] = GeometryFactory.CreatePoint(new Coordinate(1, 22)); context.SaveChanges(); } @@ -753,11 +751,11 @@ public async Task Insert_with_non_key_default_spatial_value() var blogs = context.SpatialBlogs.OrderBy(e => e.Name).ToList(); Assert.Equal(3, blogs.Count); - var point1 = (Point)blogs[1].GeometryCollection.Geometries[0]; + var point1 = (Point)blogs[1].GeometryCollection!.Geometries[0]; Assert.Equal(1, point1.X); Assert.Equal(11, point1.Y); - var point2 = (Point)blogs[2].GeometryCollection.Geometries[0]; + var point2 = (Point)blogs[2].GeometryCollection!.Geometries[0]; Assert.Equal(1, point2.X); Assert.Equal(22, point2.Y); } @@ -1041,7 +1039,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) [Fact] public async Task Insert_and_update_with_computed_column_with_querying_function() { - SqlServerTestStore testStore = null; + SqlServerTestStore? testStore = null; try { testStore = await SqlServerTestStore.CreateInitializedAsync(DatabaseName); @@ -1598,7 +1596,7 @@ public async Task Resolve_concurrency() var updatedBlog = innerContext.ConcurrentBlogs.Single(); updatedBlog.Name = "One Pegasus"; innerContext.SaveChanges(); - var currentTimestamp = updatedBlog.Timestamp.ToArray(); + var currentTimestamp = updatedBlog.Timestamp!.ToArray(); try { @@ -1656,9 +1654,9 @@ protected Blog CreateBlog(string name) public class Blog { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public DateTime CreatedOn { get; set; } - public NeedsConverter NeedsConverter { get; set; } + public NeedsConverter? NeedsConverter { get; set; } public int? OtherId { get; set; } } @@ -1673,15 +1671,15 @@ protected BlogWithSpatial CreateBlogWithSpatial(string name) public class BlogWithSpatial { public int Id { get; set; } - public string Name { get; set; } - public GeometryCollection GeometryCollection { get; set; } + public string? Name { get; set; } + public GeometryCollection? GeometryCollection { get; set; } } public class NeedsConverter(int value) { public int Value { get; } = value; - public override bool Equals(object obj) + public override bool Equals(object? obj) => throw new InvalidOperationException(); public override int GetHashCode() @@ -1691,52 +1689,52 @@ public override int GetHashCode() public class NullableKeyBlog { public int? Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public DateTime CreatedOn { get; set; } } public class FullNameBlog { public int Id { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - public string FullName { get; set; } + public string? FirstName { get; set; } + public string? LastName { get; set; } + public string? FullName { get; set; } } public class GuidBlog { public Guid Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public Guid NotId { get; set; } } public class ConcurrentBlog { public int Id { get; set; } - public string Name { get; set; } - public byte[] Timestamp { get; set; } + public string? Name { get; set; } + public byte[]? Timestamp { get; set; } } protected virtual void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity() .Property(e => e.NeedsConverter) .HasConversion( - v => v.Value, + v => v!.Value, v => new NeedsConverter(v), new ValueComparer( (l, r) => (l == null && r == null) || (l != null && r != null && l.Value == r.Value), - v => v.Value.GetHashCode(), - v => new NeedsConverter(v.Value))) + v => v!.Value.GetHashCode(), + v => new NeedsConverter(v!.Value))) .HasDefaultValue(new NeedsConverter(999)); public abstract class ContextBase(string databaseName, Action builder) : DbContext { - public DbSet Blogs { get; set; } - public DbSet SpatialBlogs { get; set; } - public DbSet NullableKeyBlogs { get; set; } - public DbSet FullNameBlogs { get; set; } - public DbSet GuidBlogs { get; set; } - public DbSet ConcurrentBlogs { get; set; } + public DbSet Blogs { get; set; } = null!; + public DbSet SpatialBlogs { get; set; } = null!; + public DbSet NullableKeyBlogs { get; set; } = null!; + public DbSet FullNameBlogs { get; set; } = null!; + public DbSet GuidBlogs { get; set; } = null!; + public DbSet ConcurrentBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => builder(modelBuilder); diff --git a/test/EFCore.SqlServer.FunctionalTests/StoreGeneratedFixupSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/StoreGeneratedFixupSqlServerTest.cs index d89a3df4b7e..658364530dd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/StoreGeneratedFixupSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/StoreGeneratedFixupSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class StoreGeneratedFixupSqlServerTest(StoreGeneratedFixupSqlServerTest.StoreGeneratedFixupSqlServerFixture fixture) : StoreGeneratedFixupRelationalTestBase< StoreGeneratedFixupSqlServerTest.StoreGeneratedFixupSqlServerFixture>(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/TPTTableSplittingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TPTTableSplittingSqlServerTest.cs index 504ef5454c7..65d13a18539 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TPTTableSplittingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TPTTableSplittingSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TPTTableSplittingSqlServerTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : TPTTableSplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.SqlServer.FunctionalTests/TableSplittingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TableSplittingSqlServerTest.cs index 2b62e3f56a2..49e96e19699 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TableSplittingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TableSplittingSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TableSplittingSqlServerTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : TableSplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.SqlServer.FunctionalTests/TestModels/Northwind/NorthwindSqlServerContext.cs b/test/EFCore.SqlServer.FunctionalTests/TestModels/Northwind/NorthwindSqlServerContext.cs index 3ce4ca1881f..3cd6ec51bec 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TestModels/Northwind/NorthwindSqlServerContext.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TestModels/Northwind/NorthwindSqlServerContext.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.TestModels.Northwind; -#nullable disable - public class NorthwindSqlServerContext(DbContextOptions options) : NorthwindRelationalContext(options) { protected override void OnModelCreating(ModelBuilder modelBuilder) diff --git a/test/EFCore.SqlServer.FunctionalTests/TpcManyToManyTrackingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TpcManyToManyTrackingSqlServerTest.cs index 16175bae979..5c15db19965 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TpcManyToManyTrackingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TpcManyToManyTrackingSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TpcManyToManyTrackingSqlServerTest(TpcManyToManyTrackingSqlServerTest.TpcManyToManyTrackingSqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/TptManyToManyTrackingSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TptManyToManyTrackingSqlServerTest.cs index 77e46eb7159..4f6a8191f65 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TptManyToManyTrackingSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TptManyToManyTrackingSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TptManyToManyTrackingSqlServerTest(TptManyToManyTrackingSqlServerTest.TptManyToManyTrackingSqlServerFixture fixture) : ManyToManyTrackingSqlServerTestBase(fixture) { diff --git a/test/EFCore.SqlServer.FunctionalTests/TransactionInterceptionSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TransactionInterceptionSqlServerTest.cs index 8f42c0f6d0d..643dd87f610 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TransactionInterceptionSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TransactionInterceptionSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class TransactionInterceptionSqlServerTestBase( TransactionInterceptionSqlServerTestBase.InterceptionSqlServerFixtureBase fixture) : TransactionInterceptionTestBase(fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/TransactionSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TransactionSqlServerTest.cs index 64db4c5fbe6..bc008b3bf11 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TransactionSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TransactionSqlServerTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TransactionSqlServerTest(TransactionSqlServerTest.TransactionSqlServerFixture fixture) : TransactionTestBase(fixture) { @@ -67,7 +65,7 @@ protected override bool AmbientTransactionsSupported protected override DbContext CreateContextWithConnectionString() => CreateContextWithConnectionString(null); - protected DbContext CreateContextWithConnectionString(string connectionString) + protected DbContext CreateContextWithConnectionString(string? connectionString) { var options = Fixture.AddOptions( new DbContextOptionsBuilder() diff --git a/test/EFCore.SqlServer.FunctionalTests/TwoDatabasesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/TwoDatabasesSqlServerTest.cs index 2d6e19069a0..f4466e8645f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/TwoDatabasesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/TwoDatabasesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TwoDatabasesSqlServerTest(SqlServerFixture fixture) : TwoDatabasesTestBase(fixture), IClassFixture { protected new SqlServerFixture Fixture @@ -21,7 +19,7 @@ protected override DbContextOptionsBuilder CreateTestOptions( bool withNullConnectionString = false) => withConnectionString ? withNullConnectionString - ? optionsBuilder.UseSqlServer((string)null) + ? optionsBuilder.UseSqlServer((string)null!) : optionsBuilder.UseSqlServer(DummyConnectionString) : optionsBuilder.UseSqlServer(); diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerFixture.cs index aab26fb9286..38a20e02131 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerFixture.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. -#nullable disable using Microsoft.EntityFrameworkCore.TestModels.JsonQuery; namespace Microsoft.EntityFrameworkCore.Update; diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerTest.cs index 265a982674c..69a38bb7587 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateJsonTypeSqlServerTest.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. -#nullable disable using Xunit.Sdk; namespace Microsoft.EntityFrameworkCore.Update; diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerFixture.cs index 8481c07cfe1..ddbfff8351f 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class JsonUpdateSqlServerFixture : JsonUpdateFixtureBase { protected override ITestStoreFactory TestStoreFactory @@ -31,6 +29,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con b.Ignore(e => e.TestNullableInt32CollectionCollection); b.Ignore(e => e.TestNullableEnumCollectionCollection); + b.Navigation(e => e.Reference).IsRequired(false); + b.OwnsOne( e => e.Reference, b => { diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerTest.cs index 2ec600e8282..a7bc82746c2 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/JsonUpdateSqlServerTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class JsonUpdateSqlServerTest : JsonUpdateTestBase { public JsonUpdateSqlServerTest(JsonUpdateSqlServerFixture fixture) diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/NonSharedModelUpdatesSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Update/NonSharedModelUpdatesSqlServerTest.cs index eba70f25d5b..45e5608d568 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/NonSharedModelUpdatesSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/NonSharedModelUpdatesSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class NonSharedModelUpdatesSqlServerTest(NonSharedFixture fixture) : NonSharedModelUpdatesTestBase(fixture) { public override async Task Principal_and_dependent_roundtrips_with_cycle_breaking(bool async) @@ -129,7 +127,7 @@ public class User public class DailyDigest { public int Id { get; set; } - public User User { get; set; } + public User? User { get; set; } } public override async Task DbUpdateException_Entries_is_correct_with_multiple_inserts(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/SqlServerUpdateSqlGeneratorTest.cs b/test/EFCore.SqlServer.FunctionalTests/Update/SqlServerUpdateSqlGeneratorTest.cs index 9d4c06e9d0f..3add92166d1 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/SqlServerUpdateSqlGeneratorTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/SqlServerUpdateSqlGeneratorTest.cs @@ -8,8 +8,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class SqlServerUpdateSqlGeneratorTest : UpdateSqlGeneratorTestBase { protected override IUpdateSqlGenerator CreateSqlGenerator() diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerFixture.cs b/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerFixture.cs index 9b133708e51..993c93ee1de 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerFixture.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public abstract class StoreValueGenerationWithoutOutputSqlServerFixture : StoreValueGenerationSqlServerFixtureBase { protected override async Task SeedAsync(StoreValueGenerationContext context) diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerTestBase.cs b/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerTestBase.cs index 59345c9dcdd..d25cabfe20d 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerTestBase.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/StoreValueGenerationWithoutOutputSqlServerTestBase.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public abstract class StoreValueGenerationWithoutOutputSqlServerTestBase(TFixture fixture) : StoreValueGenerationTestBase(fixture) where TFixture : StoreValueGenerationWithoutOutputSqlServerFixture diff --git a/test/EFCore.SqlServer.FunctionalTests/Update/StoredProcedureUpdateSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Update/StoredProcedureUpdateSqlServerTest.cs index 4d91a1c94cd..77b38098be9 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Update/StoredProcedureUpdateSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Update/StoredProcedureUpdateSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class StoredProcedureUpdateSqlServerTest(NonSharedFixture fixture) : StoredProcedureUpdateTestBase(fixture) { public override async Task Insert_with_output_parameter(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/WithConstructorsSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/WithConstructorsSqlServerTest.cs index fbfb02d2b2c..7d7c46a1f20 100644 --- a/test/EFCore.SqlServer.FunctionalTests/WithConstructorsSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/WithConstructorsSqlServerTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class WithConstructorsSqlServerTest(WithConstructorsSqlServerTest.WithConstructorsSqlServerFixture fixture) : WithConstructorsTestBase(fixture) { diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/EFCore.SqlServer.HierarchyId.Tests.csproj b/test/EFCore.SqlServer.HierarchyId.Tests/EFCore.SqlServer.HierarchyId.Tests.csproj index 8b60caddb2d..2e02068a245 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/EFCore.SqlServer.HierarchyId.Tests.csproj +++ b/test/EFCore.SqlServer.HierarchyId.Tests/EFCore.SqlServer.HierarchyId.Tests.csproj @@ -4,7 +4,6 @@ $(DefaultNetCoreTargetFramework) Microsoft.EntityFrameworkCore.SqlServer.HierarchyId.Tests Microsoft.EntityFrameworkCore.SqlServer - disable True true diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/HierarchyIdJsonConverterTest.cs b/test/EFCore.SqlServer.HierarchyId.Tests/HierarchyIdJsonConverterTest.cs index f7544bb2151..f41477c91d7 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/HierarchyIdJsonConverterTest.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/HierarchyIdJsonConverterTest.cs @@ -10,7 +10,7 @@ public class HierarchyIdJsonConverterTest { [Fact] public void Read_works() - => Assert.Equal("/1/", JsonSerializer.Deserialize("\"/1/\"").ToString()); + => Assert.Equal("/1/", JsonSerializer.Deserialize("\"/1/\"")!.ToString()); [Fact] public void Read_works_when_null() @@ -22,5 +22,5 @@ public void Write_works() [Fact] public void Write_works_when_null() - => Assert.Equal("null", JsonSerializer.Serialize(null)); + => Assert.Equal("null", JsonSerializer.Serialize(null)); } diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/NullabilityTests.cs b/test/EFCore.SqlServer.HierarchyId.Tests/NullabilityTests.cs index c2606ed93df..59472b775ca 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/NullabilityTests.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/NullabilityTests.cs @@ -10,12 +10,12 @@ public class NullabilityTests [Fact] public void Null_against_null() { - Assert.True(null == (HierarchyId)null); - Assert.False(null != (HierarchyId)null); - Assert.False(null > (HierarchyId)null); - Assert.True(null >= (HierarchyId)null); - Assert.False(null < (HierarchyId)null); - Assert.True(null <= (HierarchyId)null); + Assert.True(null == (HierarchyId?)null); + Assert.False(null != (HierarchyId?)null); + Assert.False(null > (HierarchyId?)null); + Assert.True(null >= (HierarchyId?)null); + Assert.False(null < (HierarchyId?)null); + Assert.True(null <= (HierarchyId?)null); } [Fact] @@ -44,8 +44,8 @@ public void Null_against_nonNull() [Fact] public void NullOnly_aggregates_equalTo_null() { - var hid = (HierarchyId)null; - var collection = new[] { null, (HierarchyId)null, }; + var hid = (HierarchyId?)null; + var collection = new HierarchyId?[] { null, null }; var min = collection.Min(); var max = collection.Max(); diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/QueryTests.cs b/test/EFCore.SqlServer.HierarchyId.Tests/QueryTests.cs index 8359927ea9e..7fdcae6e5d0 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/QueryTests.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/QueryTests.cs @@ -131,7 +131,7 @@ where p.Id.GetLevel() == 0 Condense(@"SELECT [p].[Id].GetAncestor(1) FROM [Patriarchy] AS [p] WHERE [p].[Id].GetLevel() = CAST(0 AS smallint)"), Condense(_db.Sql)); - Assert.Equal(new HierarchyId[] { null }, results); + Assert.Equal(new HierarchyId?[] { null }, results); } [Fact] @@ -206,7 +206,7 @@ public void Can_insert_HierarchyId() _db.SaveChanges(); _db.ChangeTracker.Clear(); - var queried = _db.Patriarchy.Where(e => e.Name.StartsWith("Th")).OrderBy(e => e.Id).ToList(); + var queried = _db.Patriarchy.Where(e => e.Name!.StartsWith("Th")).OrderBy(e => e.Id).ToList(); Assert.Equal(3, queried.Count); @@ -237,7 +237,7 @@ public void Can_insert_and_update_converted_HierarchyId() _db.SaveChanges(); _db.ChangeTracker.Clear(); - var queried = _db.ConvertedPatriarchy.Where(e => e.Name.StartsWith("Th")).OrderBy(e => e.Id).ToList(); + var queried = _db.ConvertedPatriarchy.Where(e => e.Name!.StartsWith("Th")).OrderBy(e => e.Id).ToList(); Assert.Equal(3, queried.Count); @@ -255,7 +255,7 @@ public void Can_insert_and_update_converted_HierarchyId() _db.SaveChanges(); _db.ChangeTracker.Clear(); - queried = _db.ConvertedPatriarchy.Where(e => e.Name.StartsWith("Th")).OrderBy(e => e.Id).ToList(); + queried = _db.ConvertedPatriarchy.Where(e => e.Name!.StartsWith("Th")).OrderBy(e => e.Id).ToList(); Assert.Equal(3, queried.Count); @@ -385,7 +385,7 @@ public void Dispose() // replace whitespace with a single space private static string Condense(string str) { - var split = str.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); + var split = str.Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries); return string.Join(" ", split); } } diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/RelationalScaffoldingModelFactoryTest.cs b/test/EFCore.SqlServer.HierarchyId.Tests/RelationalScaffoldingModelFactoryTest.cs index adb37526fcd..832434246a9 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/RelationalScaffoldingModelFactoryTest.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/RelationalScaffoldingModelFactoryTest.cs @@ -94,8 +94,8 @@ public void Loads_HierarchyId_columns() } }; - var entityType = - (EntityType)_factory.Create(info, new ModelReverseEngineerOptions { NoPluralize = true }).FindEntityType("Jobs"); + var entityType = Assert.IsType( + _factory.Create(info, new ModelReverseEngineerOptions { NoPluralize = true }).FindEntityType("Jobs")); Assert.Collection( entityType.GetProperties(), diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/AbrahamicContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/AbrahamicContext.cs index 6bbc876df9e..687f2e0583b 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/AbrahamicContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/AbrahamicContext.cs @@ -9,8 +9,8 @@ internal class AbrahamicContext : DbContext { private readonly TestSqlLoggerFactory _loggerFactory = new(); - public DbSet Patriarchy { get; set; } - public DbSet ConvertedPatriarchy { get; set; } + public DbSet Patriarchy { get; set; } = null!; + public DbSet ConvertedPatriarchy { get; set; } = null!; public string Sql => _loggerFactory.Sql; @@ -49,7 +49,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(b => { b.Property(e => e.HierarchyId) - .HasConversion(v => HierarchyId.Parse(v), v => v.ToString()); + .HasConversion(v => HierarchyId.Parse(v!), v => v.ToString()); b.HasData( new ConvertedPatriarch diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/ConvertedPatriarch.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/ConvertedPatriarch.cs index a333e3676cc..413970c809c 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/ConvertedPatriarch.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/ConvertedPatriarch.cs @@ -6,6 +6,6 @@ namespace Microsoft.EntityFrameworkCore.SqlServer.TestModels; internal class ConvertedPatriarch { public int Id { get; set; } - public string HierarchyId { get; set; } - public string Name { get; set; } + public string? HierarchyId { get; set; } + public string? Name { get; set; } } diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs index 06da059bde8..2682190e562 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs @@ -17,7 +17,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(b => { b.Property(e => e.HierarchyId) - .HasConversion(v => HierarchyId.Parse(v), v => v.ToString()); + .HasConversion(v => HierarchyId.Parse(v!), v => v.ToString()); b.HasData( new ConvertedPatriarch diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs index bd32c9b96e8..6ba7971d9d3 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs @@ -17,8 +17,8 @@ internal abstract class MigrationContext : DbContext protected Type ThisType => field ??= GetType(); - public DbSet TestModels { get; set; } - public DbSet ConvertedTestModels { get; set; } + public DbSet TestModels { get; set; } = null!; + public DbSet ConvertedTestModels { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder options) => options diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs index 794fca78420..d3f43438d42 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs @@ -17,7 +17,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(b => { b.Property(e => e.HierarchyId) - .HasConversion(v => HierarchyId.Parse(v), v => v.ToString()); + .HasConversion(v => HierarchyId.Parse(v!), v => v.ToString()); b.HasData( new ConvertedPatriarch diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Patriarch.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Patriarch.cs index b677e495573..5bec40dcd2a 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Patriarch.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Patriarch.cs @@ -5,6 +5,6 @@ namespace Microsoft.EntityFrameworkCore.SqlServer.TestModels; internal class Patriarch { - public HierarchyId Id { get; set; } - public string Name { get; set; } + public HierarchyId Id { get; set; } = null!; + public string? Name { get; set; } } diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestUtilities/FakeScaffoldingModelFactory.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestUtilities/FakeScaffoldingModelFactory.cs index 0abb672ef38..664f70cf41a 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestUtilities/FakeScaffoldingModelFactory.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestUtilities/FakeScaffoldingModelFactory.cs @@ -88,25 +88,25 @@ private static void FixupColumns(DatabaseTable table, IList colu internal class DatabaseTableRef : DatabaseTable { - public DatabaseTableRef(string name, string schema = null) + public DatabaseTableRef(string name, string? schema = null) { Name = name; Schema = schema; } - public override DatabaseModel Database + public override DatabaseModel? Database { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override string Comment + public override string? Comment { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override DatabasePrimaryKey PrimaryKey + public override DatabasePrimaryKey? PrimaryKey { get => throw new NotImplementedException(); set => throw new NotImplementedException(); @@ -142,25 +142,25 @@ public override bool IsNullable set => throw new NotImplementedException(); } - public override string StoreType + public override string? StoreType { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override string DefaultValueSql + public override string? DefaultValueSql { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override string ComputedColumnSql + public override string? ComputedColumnSql { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - public override string Comment + public override string? Comment { get => throw new NotImplementedException(); set => throw new NotImplementedException(); diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TypeMappingTests.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TypeMappingTests.cs index 7b480ad5165..7899fe4d58f 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TypeMappingTests.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TypeMappingTests.cs @@ -32,18 +32,19 @@ public void Maps_int_column() [Fact] public void Maps_hierarchyid_column() { - var mapping = CreateMapper().FindMapping( - new RelationalTypeMappingInfo( - storeTypeName: "hierarchyid", - storeTypeNameBase: "hierarchyid", - unicode: null, - size: null, - precision: null, - scale: null)); + var mapping = Assert.IsAssignableFrom( + CreateMapper().FindMapping( + new RelationalTypeMappingInfo( + storeTypeName: "hierarchyid", + storeTypeNameBase: "hierarchyid", + unicode: null, + size: null, + precision: null, + scale: null))); AssertMapping(mapping); - Assert.Same(SqlServerJsonHierarchyIdReaderWriter.Instance, mapping!.JsonValueReaderWriter); + Assert.Same(SqlServerJsonHierarchyIdReaderWriter.Instance, mapping.JsonValueReaderWriter); } [Fact] diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/WrapperTests.cs b/test/EFCore.SqlServer.HierarchyId.Tests/WrapperTests.cs index 0b3f1901918..0bd2a5b4990 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/WrapperTests.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/WrapperTests.cs @@ -9,11 +9,11 @@ public class WrapperTests { [Theory, InlineData(null, 1), InlineData("/", 1), InlineData("/0.5/", 1), InlineData("/1/", 0), InlineData("/2/", -1), InlineData("/1/1/", -1)] - public void CompareTo_works(string value, int expected) + public void CompareTo_works(string? value, int expected) => Assert.Equal(expected, HierarchyId.Parse("/1/").CompareTo(HierarchyId.Parse(value))); [Theory, InlineData(null, false), InlineData("/", false), InlineData("/1/", true)] - public void Equals_works(string value, bool expected) + public void Equals_works(string? value, bool expected) => Assert.Equal(expected, HierarchyId.Parse("/1/").Equals(HierarchyId.Parse(value))); [Fact] @@ -50,7 +50,7 @@ public void Parse_overloads_works_when_parentHierarchy_is_root_and_parentId_is_e [Fact] public void Parse_overloads_works_when_parentHierarchy_is_null_and_parentId_is_empty() - => Assert.Equal(HierarchyId.Parse(null, []), HierarchyId.Parse("/")); + => Assert.Equal(HierarchyId.Parse(null!, []), HierarchyId.Parse("/")); private readonly HierarchyId _parent = HierarchyId.Parse("/1/"); } diff --git a/test/EFCore.SqlServer.Tests/DbSetAsTableNameSqlServerTest.cs b/test/EFCore.SqlServer.Tests/DbSetAsTableNameSqlServerTest.cs index 1df215bdedb..45af3839dbf 100644 --- a/test/EFCore.SqlServer.Tests/DbSetAsTableNameSqlServerTest.cs +++ b/test/EFCore.SqlServer.Tests/DbSetAsTableNameSqlServerTest.cs @@ -6,10 +6,10 @@ namespace Microsoft.EntityFrameworkCore; public class DbSetAsTableNameSqlServerTest : DbSetAsTableNameTest { protected override string GetTableName(DbContext context) - => context.Model.FindEntityType(typeof(TEntity)).GetTableName(); + => context.Model.FindEntityType(typeof(TEntity))!.GetTableName()!; protected override string GetTableName(DbContext context, string entityTypeName) - => context.Model.FindEntityType(entityTypeName).GetTableName(); + => context.Model.FindEntityType(entityTypeName)!.GetTableName()!; protected override SetsContext CreateContext() => new SqlServerSetsContext(); diff --git a/test/EFCore.SqlServer.Tests/Design/Internal/SqlServerAnnotationCodeGeneratorTest.cs b/test/EFCore.SqlServer.Tests/Design/Internal/SqlServerAnnotationCodeGeneratorTest.cs index 9a44a851504..d6c46d2814b 100644 --- a/test/EFCore.SqlServer.Tests/Design/Internal/SqlServerAnnotationCodeGeneratorTest.cs +++ b/test/EFCore.SqlServer.Tests/Design/Internal/SqlServerAnnotationCodeGeneratorTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Design.Internal; -#nullable enable - public class SqlServerAnnotationCodeGeneratorTest { [Fact] diff --git a/test/EFCore.SqlServer.Tests/EFCore.SqlServer.Tests.csproj b/test/EFCore.SqlServer.Tests/EFCore.SqlServer.Tests.csproj index fc082ebbfb4..15bca6b991d 100644 --- a/test/EFCore.SqlServer.Tests/EFCore.SqlServer.Tests.csproj +++ b/test/EFCore.SqlServer.Tests/EFCore.SqlServer.Tests.csproj @@ -4,7 +4,6 @@ $(DefaultNetCoreTargetFramework) Microsoft.EntityFrameworkCore.SqlServer.Tests Microsoft.EntityFrameworkCore - disable true diff --git a/test/EFCore.SqlServer.Tests/Infrastructure/SqlServerModelValidatorTest.cs b/test/EFCore.SqlServer.Tests/Infrastructure/SqlServerModelValidatorTest.cs index 37c97bf6583..4c2b2c123c4 100644 --- a/test/EFCore.SqlServer.Tests/Infrastructure/SqlServerModelValidatorTest.cs +++ b/test/EFCore.SqlServer.Tests/Infrastructure/SqlServerModelValidatorTest.cs @@ -34,7 +34,7 @@ public virtual void Throws_for_nested_primitive_collections() protected class WithNestedCollection { public int Id { get; set; } - public string[][] SomeStrings { get; set; } + public string[][] SomeStrings { get; set; } = null!; } [Fact] @@ -382,8 +382,8 @@ public virtual void Passes_for_compatible_duplicate_convention_indexes_for_forei var model = Validate(modelBuilder); - Assert.Equal("IX_Animal_Name", model.FindEntityType(typeof(Cat)).GetDeclaredIndexes().Single().GetDatabaseName()); - Assert.Equal("IX_Animal_Name", model.FindEntityType(typeof(Dog)).GetDeclaredIndexes().Single().GetDatabaseName()); + Assert.Equal("IX_Animal_Name", model.FindEntityType(typeof(Cat))!.GetDeclaredIndexes().Single().GetDatabaseName()); + Assert.Equal("IX_Animal_Name", model.FindEntityType(typeof(Dog))!.GetDeclaredIndexes().Single().GetDatabaseName()); } [Fact] @@ -1222,10 +1222,10 @@ public void Temporal_table_with_explicit_precision_on_period_columns_passes_vali Validate(modelBuilder); - var entity = modelBuilder.Model.FindEntityType(typeof(Human)); + var entity = modelBuilder.Model.FindEntityType(typeof(Human))!; - Assert.Equal(2, entity.FindProperty("Start").GetPrecision()); - Assert.Equal(2, entity.FindProperty("End").GetPrecision()); + Assert.Equal(2, entity.FindProperty("Start")!.GetPrecision()); + Assert.Equal(2, entity.FindProperty("End")!.GetPrecision()); } [Fact] @@ -1249,13 +1249,13 @@ public void Temporal_table_with_owned_with_explicit_precision_on_period_columns_ Validate(modelBuilder); - var ownerEntity = modelBuilder.Model.FindEntityType(typeof(Owner)); - var ownedEntity = modelBuilder.Model.FindEntityType(typeof(OwnedEntity)); + var ownerEntity = modelBuilder.Model.FindEntityType(typeof(Owner))!; + var ownedEntity = modelBuilder.Model.FindEntityType(typeof(OwnedEntity))!; - Assert.Equal(2, ownerEntity.FindProperty("Start").GetPrecision()); - Assert.Equal(2, ownerEntity.FindProperty("End").GetPrecision()); - Assert.Equal(2, ownedEntity.FindProperty("Start").GetPrecision()); - Assert.Equal(2, ownedEntity.FindProperty("End").GetPrecision()); + Assert.Equal(2, ownerEntity.FindProperty("Start")!.GetPrecision()); + Assert.Equal(2, ownerEntity.FindProperty("End")!.GetPrecision()); + Assert.Equal(2, ownedEntity.FindProperty("Start")!.GetPrecision()); + Assert.Equal(2, ownedEntity.FindProperty("End")!.GetPrecision()); } #endregion Temporal tables @@ -1381,7 +1381,7 @@ public class VectorWithoutDimensionsEntity public class VectorInsideJsonEntity { public int Id { get; set; } - public VectorContainer VectorContainer { get; set; } + public VectorContainer VectorContainer { get; set; } = null!; } public class VectorContainer @@ -1399,7 +1399,7 @@ public class VectorEntityWithTwoVectors public class VectorEntityWithNonVector { public int Id { get; set; } - public string NonVectorProperty { get; set; } + public string NonVectorProperty { get; set; } = null!; } [Fact] @@ -1569,8 +1569,8 @@ public virtual void Throws_for_full_text_index_with_unsupported_option() public class FullTextEntityWithTwoIndexes { public int Id { get; set; } - public string Title { get; set; } - public string Body { get; set; } + public string Title { get; set; } = null!; + public string Body { get; set; } = null!; } public class FullTextEntityWithIntColumn @@ -1582,26 +1582,26 @@ public class FullTextEntityWithIntColumn public class FullTextEntityValid { public int Id { get; set; } - public string Title { get; set; } + public string Title { get; set; } = null!; } public class FullTextEntityWithBinary { public int Id { get; set; } - public byte[] Document { get; set; } + public byte[] Document { get; set; } = null!; } public class FullTextEntityWithMixedColumns { public int Id { get; set; } - public string Title { get; set; } - public byte[] Document { get; set; } + public string Title { get; set; } = null!; + public byte[] Document { get; set; } = null!; } public class FullTextEntityWithMixedValidInvalid { public int Id { get; set; } - public string Title { get; set; } + public string Title { get; set; } = null!; public int Count { get; set; } } @@ -1616,13 +1616,13 @@ public class Human public class Splitting1 { public int Id { get; set; } - public Splitting2 Details { get; set; } + public Splitting2 Details { get; set; } = null!; } public class Splitting2 { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime Detail { get; set; } } @@ -1630,7 +1630,7 @@ private class Cheese { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } [Fact] diff --git a/test/EFCore.SqlServer.Tests/Metadata/Conventions/RelationalForeignKeyIndexConventionTest.cs b/test/EFCore.SqlServer.Tests/Metadata/Conventions/RelationalForeignKeyIndexConventionTest.cs index 8c45f71d138..b4439ca4241 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/Conventions/RelationalForeignKeyIndexConventionTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/Conventions/RelationalForeignKeyIndexConventionTest.cs @@ -13,20 +13,20 @@ public void Removing_relationship_removes_unused_conventional_index() { var modelBuilder = CreateConventionalModelBuilder(); modelBuilder.Ignore(typeof(SpecialOrder), ConfigurationSource.Explicit); - var principalEntityBuilder = modelBuilder.Entity(typeof(Customer), ConfigurationSource.Explicit); - var derivedPrincipalEntityBuilder = modelBuilder.Entity(typeof(SpecialCustomer), ConfigurationSource.Explicit); - var dependentEntityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit); + var principalEntityBuilder = modelBuilder.Entity(typeof(Customer), ConfigurationSource.Explicit)!; + var derivedPrincipalEntityBuilder = modelBuilder.Entity(typeof(SpecialCustomer), ConfigurationSource.Explicit)!; + var dependentEntityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit)!; var relationshipBuilder = dependentEntityBuilder.HasRelationship( principalEntityBuilder.Metadata, - [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention).Metadata], - ConfigurationSource.DataAnnotation); + [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention)!.Metadata], + ConfigurationSource.DataAnnotation)!; Assert.NotNull(relationshipBuilder); var relationshipBuilder2 = dependentEntityBuilder.HasRelationship( derivedPrincipalEntityBuilder.Metadata, - [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention).Metadata], - ConfigurationSource.DataAnnotation); + [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention)!.Metadata], + ConfigurationSource.DataAnnotation)!; Assert.NotNull(relationshipBuilder2); Assert.NotSame(relationshipBuilder, relationshipBuilder2); Assert.Single(dependentEntityBuilder.Metadata.GetIndexes()); @@ -48,13 +48,13 @@ public void Removing_relationship_removes_unused_conventional_index() public void Removing_relationship_does_not_remove_conventional_index_if_in_use() { var modelBuilder = CreateConventionalModelBuilder(); - var principalEntityBuilder = modelBuilder.Entity(typeof(Customer), ConfigurationSource.Explicit); - var dependentEntityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit); + var principalEntityBuilder = modelBuilder.Entity(typeof(Customer), ConfigurationSource.Explicit)!; + var dependentEntityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit)!; var relationshipBuilder = dependentEntityBuilder.HasRelationship( principalEntityBuilder.Metadata, - [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention).Metadata], - ConfigurationSource.Convention); + [dependentEntityBuilder.Property(Order.CustomerIdProperty, ConfigurationSource.Convention)!.Metadata], + ConfigurationSource.Convention)!; Assert.NotNull(relationshipBuilder); dependentEntityBuilder.HasIndex([Order.CustomerIdProperty], ConfigurationSource.Explicit); @@ -68,7 +68,7 @@ public void Removing_relationship_does_not_remove_conventional_index_if_in_use() private static TestLogger CreateTestLogger() => new() { EnabledFor = LogLevel.Warning }; - private InternalModelBuilder CreateModelBuilder(Model model = null) + private InternalModelBuilder CreateModelBuilder(Model? model = null) => new(model ?? new Model()); private InternalModelBuilder CreateConventionalModelBuilder() @@ -85,24 +85,24 @@ public enum MemberType private class Order { - public static readonly PropertyInfo IdProperty = typeof(Order).GetProperty(nameof(Id)); - public static readonly PropertyInfo CustomerIdProperty = typeof(Order).GetProperty(nameof(CustomerId)); - public static readonly PropertyInfo CustomerUniqueProperty = typeof(Order).GetProperty(nameof(CustomerUnique)); - public static readonly PropertyInfo CustomerProperty = typeof(Order).GetProperty(nameof(Customer)); - public static readonly PropertyInfo ContextProperty = typeof(Order).GetProperty(nameof(Context)); - public static readonly PropertyInfo ProductsProperty = typeof(Order).GetProperty(nameof(Products)); + public static readonly PropertyInfo IdProperty = typeof(Order).GetProperty(nameof(Id))!; + public static readonly PropertyInfo CustomerIdProperty = typeof(Order).GetProperty(nameof(CustomerId))!; + public static readonly PropertyInfo CustomerUniqueProperty = typeof(Order).GetProperty(nameof(CustomerUnique))!; + public static readonly PropertyInfo CustomerProperty = typeof(Order).GetProperty(nameof(Customer))!; + public static readonly PropertyInfo ContextProperty = typeof(Order).GetProperty(nameof(Context))!; + public static readonly PropertyInfo ProductsProperty = typeof(Order).GetProperty(nameof(Products))!; public int Id { get; set; } public int CustomerId { get; set; } public Guid? CustomerUnique { get; set; } - public Customer Customer { get; set; } - public DbContext Context { get; set; } - public ICollection Products { get; set; } + public Customer Customer { get; set; } = null!; + public DbContext Context { get; set; } = null!; + public ICollection Products { get; set; } = null!; } private class SpecialOrder : Order, IEnumerable { - public static readonly PropertyInfo SpecialtyProperty = typeof(SpecialOrder).GetProperty("Specialty"); + public static readonly PropertyInfo SpecialtyProperty = typeof(SpecialOrder).GetProperty("Specialty")!; public IEnumerator GetEnumerator() { @@ -112,7 +112,7 @@ public IEnumerator GetEnumerator() IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - public string Specialty { get; set; } + public string Specialty { get; set; } = null!; } private class ExtraSpecialOrder : SpecialOrder; @@ -121,43 +121,43 @@ private class BackOrder : Order; private class Customer { - public static readonly PropertyInfo IdProperty = typeof(Customer).GetProperty(nameof(Id)); - public static readonly PropertyInfo UniqueProperty = typeof(Customer).GetProperty(nameof(Unique)); - public static readonly PropertyInfo OrdersProperty = typeof(Customer).GetProperty(nameof(Orders)); - public static readonly PropertyInfo NotCollectionOrdersProperty = typeof(Customer).GetProperty(nameof(NotCollectionOrders)); - public static readonly PropertyInfo SpecialOrdersProperty = typeof(Customer).GetProperty(nameof(SpecialOrders)); + public static readonly PropertyInfo IdProperty = typeof(Customer).GetProperty(nameof(Id))!; + public static readonly PropertyInfo UniqueProperty = typeof(Customer).GetProperty(nameof(Unique))!; + public static readonly PropertyInfo OrdersProperty = typeof(Customer).GetProperty(nameof(Orders))!; + public static readonly PropertyInfo NotCollectionOrdersProperty = typeof(Customer).GetProperty(nameof(NotCollectionOrders))!; + public static readonly PropertyInfo SpecialOrdersProperty = typeof(Customer).GetProperty(nameof(SpecialOrders))!; public int Id { get; set; } public Guid Unique { get; set; } - public ICollection Orders { get; set; } - public Order NotCollectionOrders { get; set; } - public ICollection SpecialOrders { get; set; } - internal SpecialCustomer SpecialCustomer { get; set; } + public ICollection Orders { get; set; } = null!; + public Order NotCollectionOrders { get; set; } = null!; + public ICollection SpecialOrders { get; set; } = null!; + internal SpecialCustomer SpecialCustomer { get; set; } = null!; } private class SpecialCustomer : Customer { - internal Customer Customer { get; set; } + internal Customer Customer { get; set; } = null!; } private class OrderProduct { - public static readonly PropertyInfo OrderIdProperty = typeof(OrderProduct).GetProperty(nameof(OrderId)); - public static readonly PropertyInfo ProductIdProperty = typeof(OrderProduct).GetProperty(nameof(ProductId)); + public static readonly PropertyInfo OrderIdProperty = typeof(OrderProduct).GetProperty(nameof(OrderId))!; + public static readonly PropertyInfo ProductIdProperty = typeof(OrderProduct).GetProperty(nameof(ProductId))!; public int OrderId { get; set; } public int ProductId { get; set; } - public virtual Order Order { get; set; } - public virtual Product Product { get; set; } + public virtual Order Order { get; set; } = null!; + public virtual Product Product { get; set; } = null!; } private class Product { - public static readonly PropertyInfo IdProperty = typeof(Product).GetProperty(nameof(Id)); + public static readonly PropertyInfo IdProperty = typeof(Product).GetProperty(nameof(Id))!; public int Id { get; set; } - public virtual ICollection Orders { get; set; } + public virtual ICollection Orders { get; set; } = null!; } private class SpecialProduct : Product; @@ -166,7 +166,7 @@ private class ExtraSpecialProduct : SpecialProduct; private class Splot { - public static readonly PropertyInfo SplowedProperty = typeof(Splot).GetProperty("Splowed"); + public static readonly PropertyInfo SplowedProperty = typeof(Splot).GetProperty("Splowed")!; public int? Splowed { get; set; } } @@ -179,7 +179,7 @@ private class IndexedClass { public static readonly string IndexerPropertyName = "Indexer"; - public object this[string name] + public object? this[string name] { get => null; set { } diff --git a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerAutoLoadConventionTest.cs b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerAutoLoadConventionTest.cs index eb9821cc633..252492d94a3 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerAutoLoadConventionTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerAutoLoadConventionTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Metadata.Conventions; -#nullable enable - public class SqlServerAutoLoadConventionTest { [Fact] diff --git a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerMemoryOptimizedTablesConventionTest.cs b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerMemoryOptimizedTablesConventionTest.cs index 2813446308f..6154777bc0e 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerMemoryOptimizedTablesConventionTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerMemoryOptimizedTablesConventionTest.cs @@ -12,21 +12,21 @@ public void Keys_and_indexes_are_nonclustered_for_memory_optimized_tables() modelBuilder.Entity(); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetKeys().All(k => k.IsClustered() == null)); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetIndexes().All(k => k.IsClustered() == null)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetKeys().All(k => k.IsClustered() == null)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetIndexes().All(k => k.IsClustered() == null)); modelBuilder.Entity().ToTable(tb => tb.IsMemoryOptimized()); modelBuilder.Entity().HasKey(o => new { o.Id, o.CustomerId }); modelBuilder.Entity().HasIndex(o => o.CustomerId); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetKeys().All(k => k.IsClustered() == false)); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetIndexes().All(k => k.IsClustered() == false)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetKeys().All(k => k.IsClustered() == false)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetIndexes().All(k => k.IsClustered() == false)); modelBuilder.Entity().ToTable(tb => tb.IsMemoryOptimized(false)); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetKeys().All(k => k.IsClustered() == null)); - Assert.True(modelBuilder.Model.FindEntityType(typeof(Order)).GetIndexes().All(k => k.IsClustered() == null)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetKeys().All(k => k.IsClustered() == null)); + Assert.True(modelBuilder.Model.FindEntityType(typeof(Order))!.GetIndexes().All(k => k.IsClustered() == null)); } private class Order diff --git a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOnDeleteConventionTest.cs b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOnDeleteConventionTest.cs index ee909e8c9bc..14c12417597 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOnDeleteConventionTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOnDeleteConventionTest.cs @@ -18,7 +18,7 @@ public void Convention_does_not_assume_skip_navigations_have_non_null_FK() public class SkippyDbContext : DbContext { - public DbSet Areas { get; } + public DbSet Areas { get; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(); @@ -26,7 +26,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) public class Arena : Propensity { - public virtual ICollection AreaProperties { get; set; } + public virtual ICollection AreaProperties { get; set; } = null!; } public abstract class Propensity @@ -34,8 +34,8 @@ public abstract class Propensity public int Id { get; set; } public int? PrimaryYId { get; set; } - public virtual Propensity PrimaryYProp { get; set; } + public virtual Propensity PrimaryYProp { get; set; } = null!; - public virtual ICollection PropertyAreas { get; set; } + public virtual ICollection PropertyAreas { get; set; } = null!; } } diff --git a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOutputClauseConventionTest.cs b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOutputClauseConventionTest.cs index 4a2e136dd34..9a20b49d1da 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOutputClauseConventionTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/Conventions/SqlServerOutputClauseConventionTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Metadata.Conventions; -#nullable enable - public class SqlServerOutputClauseConventionTest { [Fact] diff --git a/test/EFCore.SqlServer.Tests/Metadata/SqlServerBuilderExtensionsTest.cs b/test/EFCore.SqlServer.Tests/Metadata/SqlServerBuilderExtensionsTest.cs index f492b5eb531..f9f6150cdad 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/SqlServerBuilderExtensionsTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/SqlServerBuilderExtensionsTest.cs @@ -18,7 +18,7 @@ public void Setting_column_default_value_does_not_set_identity_column() .HasDefaultValue(1); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty(nameof(Customer.Id)); + var property = model.FindEntityType(typeof(Customer))!.FindProperty(nameof(Customer.Id))!; Assert.Equal(SqlServerValueGenerationStrategy.None, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -35,7 +35,7 @@ public void Setting_column_default_value_sql_does_not_set_identity_column() .HasDefaultValueSql("1"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty(nameof(Customer.Id)); + var property = model.FindEntityType(typeof(Customer))!.FindProperty(nameof(Customer.Id))!; Assert.Equal(SqlServerValueGenerationStrategy.None, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -52,7 +52,7 @@ public void Can_set_index_filter() .HasFilter("Generic expression") .HasFilter("SqlServer-specific expression"); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal("SqlServer-specific expression", index.GetFilter()); } @@ -66,7 +66,7 @@ public void Can_set_MemoryOptimized() .Entity() .ToTable(tb => tb.IsMemoryOptimized()); - var entityType = modelBuilder.Model.FindEntityType(typeof(Customer)); + var entityType = modelBuilder.Model.FindEntityType(typeof(Customer))!; Assert.True(entityType.IsMemoryOptimized()); @@ -86,7 +86,7 @@ public void Can_set_MemoryOptimized_non_generic() .Entity(typeof(Customer)) .ToTable(tb => tb.IsMemoryOptimized()); - var entityType = modelBuilder.Model.FindEntityType(typeof(Customer)); + var entityType = modelBuilder.Model.FindEntityType(typeof(Customer))!; Assert.True(entityType.IsMemoryOptimized()); @@ -107,9 +107,9 @@ public void Can_set_index_clustering() .HasIndex(e => e.Id) .IsClustered(); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); - Assert.True(index.IsClustered().Value); + Assert.True(index.IsClustered()!.Value); } [Fact] @@ -122,9 +122,9 @@ public void Can_set_key_clustering() .HasKey(e => e.Id) .IsClustered(); - var key = modelBuilder.Model.FindEntityType(typeof(Customer)).FindPrimaryKey(); + var key = modelBuilder.Model.FindEntityType(typeof(Customer))!.FindPrimaryKey()!; - Assert.True(key.IsClustered().Value); + Assert.True(key.IsClustered()!.Value); } [Fact] @@ -137,7 +137,7 @@ public void Can_set_key_with_fillfactor() .HasKey(e => e.Id) .HasFillFactor(90); - var key = modelBuilder.Model.FindEntityType(typeof(Customer)).FindPrimaryKey(); + var key = modelBuilder.Model.FindEntityType(typeof(Customer))!.FindPrimaryKey()!; Assert.Equal(90, key.GetFillFactor()); } @@ -152,7 +152,7 @@ public void Can_set_key_with_fillfactor_non_generic() .HasKey("Id") .HasFillFactor(90); - var key = modelBuilder.Model.FindEntityType(typeof(Customer)).FindPrimaryKey(); + var key = modelBuilder.Model.FindEntityType(typeof(Customer))!.FindPrimaryKey()!; Assert.Equal(90, key.GetFillFactor()); } @@ -167,11 +167,11 @@ public void Can_set_index_include() .HasIndex(e => e.Name) .IncludeProperties(e => e.Offset); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.NotNull(index.GetIncludeProperties()); Assert.Collection( - index.GetIncludeProperties(), + index.GetIncludeProperties()!, c => Assert.Equal(nameof(Customer.Offset), c)); } @@ -186,12 +186,12 @@ public void Can_set_index_include_after_unique_using_generic_builder() .IsUnique() .IncludeProperties(e => e.Offset); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.True(index.IsUnique); Assert.NotNull(index.GetIncludeProperties()); Assert.Collection( - index.GetIncludeProperties(), + index.GetIncludeProperties()!, c => Assert.Equal(nameof(Customer.Offset), c)); } @@ -206,16 +206,16 @@ public void Can_set_index_include_after_annotation_using_generic_builder() .HasAnnotation("Test:ShouldBeTrue", true) .IncludeProperties(e => e.Offset); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); var annotation = index.FindAnnotation("Test:ShouldBeTrue"); Assert.NotNull(annotation); - Assert.True(annotation.Value as bool?); + Assert.True(annotation!.Value as bool?); Assert.NotNull(index.GetIncludeProperties()); Assert.Collection( - index.GetIncludeProperties(), + index.GetIncludeProperties()!, c => Assert.Equal(nameof(Customer.Offset), c)); } @@ -229,11 +229,11 @@ public void Can_set_index_include_non_generic() .HasIndex(e => e.Name) .IncludeProperties(nameof(Customer.Offset)); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.NotNull(index.GetIncludeProperties()); Assert.Collection( - index.GetIncludeProperties(), + index.GetIncludeProperties()!, c => Assert.Equal(nameof(Customer.Offset), c)); } @@ -247,7 +247,7 @@ public void Can_set_index_online() .HasIndex(e => e.Name) .IsCreatedOnline(); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.True(index.IsCreatedOnline()); } @@ -262,7 +262,7 @@ public void Can_set_index_online_non_generic() .HasIndex("Name") .IsCreatedOnline(); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.True(index.IsCreatedOnline()); } @@ -301,7 +301,7 @@ public void Can_set_sequences_with_name_for_model() Assert.NotNull(relationalExtensions.FindSequence("Snook")); - var sequence = sqlServerExtensions.FindSequence("Snook"); + var sequence = sqlServerExtensions.FindSequence("Snook")!; Assert.Equal("Snook", sequence.Name); Assert.Null(sequence.Schema); @@ -328,7 +328,7 @@ public void Can_set_sequences_with_schema_and_name_for_model() Assert.NotNull(relationalExtensions.FindSequence("Snook", "Tasty")); - var sequence = sqlServerExtensions.FindSequence("Snook", "Tasty"); + var sequence = sqlServerExtensions.FindSequence("Snook", "Tasty")!; Assert.Equal("Snook", sequence.Name); Assert.Equal("Tasty", sequence.Schema); Assert.Equal(10, sequence.IncrementBy); @@ -359,8 +359,8 @@ public void Can_set_use_of_existing_relational_sequence_for_model() Assert.Equal("Snook", sqlServerExtensions.GetHiLoSequenceName()); Assert.Equal("Tasty", sqlServerExtensions.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")!); } [Fact] @@ -384,8 +384,8 @@ public void Can_set_use_of_existing_SQL_sequence_for_model() Assert.Equal("Snook", sqlServerExtensions.GetHiLoSequenceName()); Assert.Equal("Tasty", sqlServerExtensions.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")!); } [Fact] @@ -440,7 +440,7 @@ public void Can_set_key_sequences_with_schema_and_name_for_model() Assert.NotNull(relationalExtensions.FindSequence("CustomerSnook", "Tasty")); - var sequence = sqlServerExtensions.FindSequence("CustomerSnook", "Tasty"); + var sequence = sqlServerExtensions.FindSequence("CustomerSnook", "Tasty")!; Assert.Equal("CustomerSnook", sequence.Name); Assert.Equal("Tasty", sequence.Schema); Assert.Equal(1, sequence.IncrementBy); @@ -471,8 +471,8 @@ public void Can_set_use_of_existing_relational_key_sequence_for_model() Assert.Equal("Snook", sqlServerExtensions.GetSequenceNameSuffix()); Assert.Equal("Tasty", sqlServerExtensions.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")!); } [Fact] @@ -496,8 +496,8 @@ public void Can_set_use_of_existing_SQL_key_sequence_for_model() Assert.Equal("Snook", sqlServerExtensions.GetSequenceNameSuffix()); Assert.Equal("Tasty", sqlServerExtensions.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(relationalExtensions.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(sqlServerExtensions.FindSequence("Snook", "Tasty")!); } private static void ValidateSchemaNamedSpecificSequence(IReadOnlySequence sequence) @@ -543,19 +543,19 @@ public void Setting_SqlServer_identities_for_model_is_lower_priority_than_relati modelBuilder.UseIdentityColumns(); var model = modelBuilder.Model; - var idProperty = model.FindEntityType(typeof(Customer)).FindProperty(nameof(Customer.Id)); + var idProperty = model.FindEntityType(typeof(Customer))!.FindProperty(nameof(Customer.Id))!; Assert.Equal(SqlServerValueGenerationStrategy.None, idProperty.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, idProperty.ValueGenerated); Assert.Equal(1, idProperty.GetDefaultValue()); Assert.Equal(1, idProperty.GetDefaultValue()); - var nameProperty = model.FindEntityType(typeof(Customer)).FindProperty(nameof(Customer.Name)); + var nameProperty = model.FindEntityType(typeof(Customer))!.FindProperty(nameof(Customer.Name))!; Assert.Equal(SqlServerValueGenerationStrategy.None, nameProperty.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAddOrUpdate, nameProperty.ValueGenerated); Assert.Equal("Default", nameProperty.GetComputedColumnSql()); Assert.Equal("Default", nameProperty.GetComputedColumnSql()); - var offsetProperty = model.FindEntityType(typeof(Customer)).FindProperty(nameof(Customer.Offset)); + var offsetProperty = model.FindEntityType(typeof(Customer))!.FindProperty(nameof(Customer.Offset))!; Assert.Equal(SqlServerValueGenerationStrategy.None, offsetProperty.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, offsetProperty.ValueGenerated); Assert.Equal("Now", offsetProperty.GetDefaultValueSql()); @@ -573,7 +573,7 @@ public void Can_set_sequence_for_property() .UseHiLo(); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -594,7 +594,7 @@ public void Can_set_sequences_with_name_for_property() .UseHiLo("Snook"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -603,7 +603,7 @@ public void Can_set_sequences_with_name_for_property() Assert.NotNull(model.FindSequence("Snook")); - var sequence = model.FindSequence("Snook"); + var sequence = model.FindSequence("Snook")!; Assert.Equal("Snook", sequence.Name); Assert.Null(sequence.Schema); @@ -625,7 +625,7 @@ public void Can_set_sequences_with_schema_and_name_for_property() .UseHiLo("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -634,7 +634,7 @@ public void Can_set_sequences_with_schema_and_name_for_property() Assert.NotNull(model.FindSequence("Snook", "Tasty")); - var sequence = model.FindSequence("Snook", "Tasty"); + var sequence = model.FindSequence("Snook", "Tasty")!; Assert.Equal("Snook", sequence.Name); Assert.Equal("Tasty", sequence.Schema); Assert.Equal(10, sequence.IncrementBy); @@ -662,15 +662,15 @@ public void Can_set_use_of_existing_relational_sequence_for_property() .UseHiLo("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetHiLoSequenceName()); Assert.Equal("Tasty", property.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -685,15 +685,15 @@ public void Can_set_use_of_existing_relational_sequence_for_property_using_neste .UseHiLo("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetHiLoSequenceName()); Assert.Equal("Tasty", property.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -714,14 +714,14 @@ public void Can_set_use_of_existing_SQL_sequence_for_property() .UseHiLo("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetHiLoSequenceName()); Assert.Equal("Tasty", property.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -742,14 +742,14 @@ public void Can_set_use_of_existing_SQL_sequence_for_property_using_nested_closu .UseHiLo("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetHiLoSequenceName()); Assert.Equal("Tasty", property.GetHiLoSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -765,7 +765,7 @@ public void Can_set_key_sequence_for_property() modelBuilder.FinalizeModel(); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -786,7 +786,7 @@ public void Can_set_key_sequences_with_name_for_property() modelBuilder.FinalizeModel(); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -795,7 +795,7 @@ public void Can_set_key_sequences_with_name_for_property() Assert.NotNull(model.FindSequence("Snook")); - var sequence = model.FindSequence("Snook"); + var sequence = model.FindSequence("Snook")!; Assert.Equal("Snook", sequence.Name); Assert.Null(sequence.Schema); @@ -819,7 +819,7 @@ public void Can_set_key_sequences_with_schema_and_name_for_property() modelBuilder.FinalizeModel(); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -828,7 +828,7 @@ public void Can_set_key_sequences_with_schema_and_name_for_property() Assert.NotNull(model.FindSequence("Snook", "Tasty")); - var sequence = model.FindSequence("Snook", "Tasty"); + var sequence = model.FindSequence("Snook", "Tasty")!; Assert.Equal("Snook", sequence.Name); Assert.Equal("Tasty", sequence.Schema); Assert.Equal(1, sequence.IncrementBy); @@ -856,15 +856,15 @@ public void Can_set_use_of_existing_relational_key_sequence_for_property() .UseSequence("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetSequenceName()); Assert.Equal("Tasty", property.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -879,15 +879,15 @@ public void Can_set_use_of_existing_relational_key_sequence_for_property_using_n .UseSequence("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetSequenceName()); Assert.Equal("Tasty", property.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -908,14 +908,14 @@ public void Can_set_use_of_existing_SQL_key_sequence_for_property() .UseSequence("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetSequenceName()); Assert.Equal("Tasty", property.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -936,14 +936,14 @@ public void Can_set_use_of_existing_SQL_key_sequence_for_property_using_nested_c .UseSequence("Snook", "Tasty"); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.Sequence, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); Assert.Equal("Snook", property.GetSequenceName()); Assert.Equal("Tasty", property.GetSequenceSchema()); - ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")); + ValidateSchemaNamedSpecificSequence(model.FindSequence("Snook", "Tasty")!); } [Fact] @@ -957,7 +957,7 @@ public void Can_set_identities_for_property() .UseIdentityColumn(); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.IdentityColumn, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -980,7 +980,7 @@ public void Can_set_identities_with_seed_and_identity_for_property() .UseIdentityColumn(100, 5); var model = modelBuilder.Model; - var property = model.FindEntityType(typeof(Customer)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Customer))!.FindProperty("Id")!; Assert.Equal(SqlServerValueGenerationStrategy.IdentityColumn, property.GetValueGenerationStrategy()); Assert.Equal(ValueGenerated.OnAdd, property.ValueGenerated); @@ -1050,7 +1050,7 @@ public void Can_write_index_filter_with_where_clauses_generic() AssertIsGeneric(returnedBuilder); Assert.IsType>(returnedBuilder); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal("[Id] % 2 = 0", index.GetFilter()); } @@ -1064,7 +1064,7 @@ public void Can_set_index_with_fillfactor() .HasIndex(e => e.Name) .HasFillFactor(90); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal(90, index.GetFillFactor()); } @@ -1079,7 +1079,7 @@ public void Can_set_index_with_fillfactor_non_generic() .HasIndex("Name") .HasFillFactor(90); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal(90, index.GetFillFactor()); } @@ -1122,7 +1122,7 @@ public void Can_set_index_with_sortintempdb() .HasIndex(e => e.Name) .SortInTempDb(); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.True(index.GetSortInTempDb()); } @@ -1137,7 +1137,7 @@ public void Can_set_index_with_sortintempdb_non_generic() .HasIndex("Name") .SortInTempDb(); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.True(index.GetSortInTempDb()); } @@ -1152,7 +1152,7 @@ public void Can_set_index_with_datacompression(DataCompressionType dataCompressi .HasIndex(e => e.Name) .UseDataCompression(dataCompression); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal(dataCompression, index.GetDataCompression()); } @@ -1167,7 +1167,7 @@ public void Can_set_index_with_datacompression_non_generic(DataCompressionType d .HasIndex("Name") .UseDataCompression(dataCompression); - var index = modelBuilder.Model.FindEntityType(typeof(Customer)).GetIndexes().Single(); + var index = modelBuilder.Model.FindEntityType(typeof(Customer))!.GetIndexes().Single(); Assert.Equal(dataCompression, index.GetDataCompression()); } @@ -1304,10 +1304,10 @@ protected virtual ModelBuilder CreateConventionModelBuilder() private class Customer { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTimeOffset Offset { get; set; } - public IEnumerable Orders { get; set; } + public IEnumerable Orders { get; set; } = null!; } private class Order @@ -1315,9 +1315,9 @@ private class Order public int OrderId { get; set; } public int CustomerId { get; set; } - public Customer Customer { get; set; } + public Customer Customer { get; set; } = null!; - public OrderDetails Details { get; set; } + public OrderDetails Details { get; set; } = null!; } private class OrderDetails @@ -1325,7 +1325,7 @@ private class OrderDetails public int Id { get; set; } public int OrderId { get; set; } - public Order Order { get; set; } + public Order Order { get; set; } = null!; } private class SpecialCustomer : Customer diff --git a/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataBuilderExtensionsTest.cs b/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataBuilderExtensionsTest.cs index a95a84036e1..797121d7026 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataBuilderExtensionsTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataBuilderExtensionsTest.cs @@ -130,7 +130,7 @@ public void Sequence_and_schema_are_reset_when_changing_strategy(SqlServerValueG Assert.Equal(SqlServerValueGenerationStrategy.Sequence, builder.Metadata.GetValueGenerationStrategy()); AssertFacets("Sequence", null); - void AssertFacets(string sequenceSuffix, string schema) + void AssertFacets(string sequenceSuffix, string? schema) { Assert.Equal(1, builder.Metadata.GetIdentitySeed()); Assert.Equal(1, builder.Metadata.GetIdentityIncrement()); @@ -163,7 +163,7 @@ public void HiLo_sequence_and_schema_are_reset_when_changing_strategy(SqlServerV Assert.Equal(SqlServerValueGenerationStrategy.SequenceHiLo, builder.Metadata.GetValueGenerationStrategy()); AssertFacets("EntityFrameworkHiLoSequence", null); - void AssertFacets(string sequence, string schema) + void AssertFacets(string sequence, string? schema) { Assert.Equal(1, builder.Metadata.GetIdentitySeed()); Assert.Equal(1, builder.Metadata.GetIdentityIncrement()); @@ -252,7 +252,7 @@ public void Can_access_model_performance_level() [Fact] public void Can_change_entity_type_IsMemoryOptimized() { - var typeBuilder = CreateBuilder().Entity(typeof(Splot)); + var typeBuilder = CreateBuilder().Entity(typeof(Splot))!; Assert.Null(typeBuilder.Metadata.GetIsMemoryOptimizedConfigurationSource()); @@ -276,7 +276,7 @@ public void Can_change_entity_type_IsMemoryOptimized() [Fact] public void Can_change_entity_type_UseSqlOutputClause() { - var typeBuilder = CreateBuilder().Entity(typeof(Splot)); + var typeBuilder = CreateBuilder().Entity(typeof(Splot))!; Assert.Null(typeBuilder.Metadata.GetUseSqlOutputClauseConfigurationSource()); @@ -321,8 +321,8 @@ public void Can_change_entity_type_UseSqlOutputClause() public void Can_access_property() { var propertyBuilder = CreateBuilder() - .Entity(typeof(Splot)) - .Property(typeof(int), "Id"); + .Entity(typeof(Splot))! + .Property(typeof(int), "Id")!; Assert.Null(propertyBuilder.Metadata.GetHiLoSequenceNameConfigurationSource()); @@ -346,9 +346,9 @@ public void Can_access_property() public void Can_access_key() { var modelBuilder = CreateBuilder(); - var entityTypeBuilder = modelBuilder.Entity(typeof(Splot)); - var idProperty = entityTypeBuilder.Property(typeof(string), "Id").Metadata; - var keyBuilder = entityTypeBuilder.HasKey([idProperty]); + var entityTypeBuilder = modelBuilder.Entity(typeof(Splot))!; + var idProperty = entityTypeBuilder.Property(typeof(string), "Id")!.Metadata; + var keyBuilder = entityTypeBuilder.HasKey([idProperty])!; Assert.Null(keyBuilder.Metadata.GetIsClusteredConfigurationSource()); @@ -372,9 +372,9 @@ public void Can_access_key() public void Can_access_index() { var modelBuilder = CreateBuilder(); - var entityTypeBuilder = modelBuilder.Entity(typeof(Splot)); - var idProperty = entityTypeBuilder.Property(typeof(int), "Id").Metadata; - var indexBuilder = entityTypeBuilder.HasIndex([idProperty]); + var entityTypeBuilder = modelBuilder.Entity(typeof(Splot))!; + var idProperty = entityTypeBuilder.Property(typeof(int), "Id")!.Metadata; + var indexBuilder = entityTypeBuilder.HasIndex([idProperty])!; Assert.Null(indexBuilder.Metadata.GetIsClusteredConfigurationSource()); @@ -398,10 +398,10 @@ public void Can_access_index() public void Can_access_relationship() { var modelBuilder = CreateBuilder(); - var entityTypeBuilder = modelBuilder.Entity(typeof(Splot)); - var idProperty = entityTypeBuilder.Property(typeof(int), "Id").Metadata; - var key = entityTypeBuilder.HasKey([idProperty]).Metadata; - var relationshipBuilder = entityTypeBuilder.HasRelationship(entityTypeBuilder.Metadata, key); + var entityTypeBuilder = modelBuilder.Entity(typeof(Splot))!; + var idProperty = entityTypeBuilder.Property(typeof(int), "Id")!.Metadata; + var key = entityTypeBuilder.HasKey([idProperty])!.Metadata; + var relationshipBuilder = entityTypeBuilder.HasRelationship(entityTypeBuilder.Metadata, key)!; Assert.NotNull(relationshipBuilder.HasConstraintName("Splew")); Assert.Equal("Splew", relationshipBuilder.Metadata.GetConstraintName()); diff --git a/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataExtensionsTest.cs b/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataExtensionsTest.cs index f2f01c28184..79be898a3ce 100644 --- a/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataExtensionsTest.cs +++ b/test/EFCore.SqlServer.Tests/Metadata/SqlServerMetadataExtensionsTest.cs @@ -157,7 +157,7 @@ public void Can_get_and_set_index_clustering() index.SetIsClustered(true); - Assert.True(index.IsClustered().Value); + Assert.True(index.IsClustered()!.Value); index.SetIsClustered(null); @@ -178,7 +178,7 @@ public void Can_get_and_set_key_clustering() key.SetIsClustered(true); - Assert.True(key.IsClustered().Value); + Assert.True(key.IsClustered()!.Value); key.SetIsClustered(null); @@ -338,7 +338,7 @@ public void TryGetSequence_returns_sequence_property_is_marked_for_sequence_gene property.SetHiLoSequenceName("DaneelOlivaw"); property.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); } [Fact] @@ -356,7 +356,7 @@ public void TryGetSequence_returns_sequence_property_is_marked_for_default_gener modelBuilder.Model.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); property.SetHiLoSequenceName("DaneelOlivaw"); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); } [Fact] @@ -374,7 +374,7 @@ public void TryGetSequence_returns_sequence_property_is_marked_for_sequence_gene modelBuilder.Model.SetHiLoSequenceName("DaneelOlivaw"); property.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); } [Fact] @@ -393,7 +393,7 @@ public void modelBuilder.Model.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); modelBuilder.Model.SetHiLoSequenceName("DaneelOlivaw"); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); } [Fact] @@ -412,8 +412,8 @@ public void TryGetSequence_with_schema_returns_sequence_property_is_marked_for_s property.SetHiLoSequenceSchema("R"); property.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); - Assert.Equal("R", property.FindHiLoSequence().Schema); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); + Assert.Equal("R", property.FindHiLoSequence()!.Schema); } [Fact] @@ -432,8 +432,8 @@ public void TryGetSequence_with_schema_returns_sequence_model_is_marked_for_sequ property.SetHiLoSequenceName("DaneelOlivaw"); property.SetHiLoSequenceSchema("R"); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); - Assert.Equal("R", property.FindHiLoSequence().Schema); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); + Assert.Equal("R", property.FindHiLoSequence()!.Schema); } [Fact] @@ -452,8 +452,8 @@ public void TryGetSequence_with_schema_returns_sequence_property_is_marked_for_s modelBuilder.Model.SetHiLoSequenceSchema("R"); property.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.SequenceHiLo); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); - Assert.Equal("R", property.FindHiLoSequence().Schema); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); + Assert.Equal("R", property.FindHiLoSequence()!.Schema); } [Fact] @@ -472,8 +472,8 @@ public void TryGetSequence_with_schema_returns_sequence_model_is_marked_for_sequ modelBuilder.Model.SetHiLoSequenceName("DaneelOlivaw"); modelBuilder.Model.SetHiLoSequenceSchema("R"); - Assert.Equal("DaneelOlivaw", property.FindHiLoSequence().Name); - Assert.Equal("R", property.FindHiLoSequence().Schema); + Assert.Equal("DaneelOlivaw", property.FindHiLoSequence()!.Name); + Assert.Equal("R", property.FindHiLoSequence()!.Schema); } private static ModelBuilder GetModelBuilder() @@ -484,10 +484,10 @@ private class Customer { public int Id { get; set; } public int? NullableInt { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public byte Byte { get; set; } public byte? NullableByte { get; set; } - public byte[] ByteArray { get; set; } + public byte[] ByteArray { get; set; } = null!; } private class Order diff --git a/test/EFCore.SqlServer.Tests/Migrations/SqlServerHistoryRepositoryTest.cs b/test/EFCore.SqlServer.Tests/Migrations/SqlServerHistoryRepositoryTest.cs index d9d3cfcb7bd..f21a603aafa 100644 --- a/test/EFCore.SqlServer.Tests/Migrations/SqlServerHistoryRepositoryTest.cs +++ b/test/EFCore.SqlServer.Tests/Migrations/SqlServerHistoryRepositoryTest.cs @@ -170,8 +170,8 @@ public void GetEndIfScript_works() } private static IHistoryRepository CreateHistoryRepository( - string schema = null, - Action configureModel = null, + string? schema = null, + Action? configureModel = null, bool addFullTextCatalogConvention = false) { var serviceProvider = addFullTextCatalogConvention @@ -190,9 +190,9 @@ private static IHistoryRepository CreateHistoryRepository( .GetService(); } - private class TestDbContext(DbContextOptions options, Action configureModel = null) : DbContext(options) + private class TestDbContext(DbContextOptions options, Action? configureModel = null) : DbContext(options) { - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; [DbFunction("TableFunction")] public IQueryable TableFunction() @@ -236,6 +236,6 @@ private class TableFunction { public int Id { get; set; } public int BlogId { get; set; } - public Blog Blog { get; set; } + public Blog Blog { get; set; } = null!; } } diff --git a/test/EFCore.SqlServer.Tests/Migrations/SqlServerMigrationsAnnotationProviderTest.cs b/test/EFCore.SqlServer.Tests/Migrations/SqlServerMigrationsAnnotationProviderTest.cs index b9ee329b2bc..018baef1a4d 100644 --- a/test/EFCore.SqlServer.Tests/Migrations/SqlServerMigrationsAnnotationProviderTest.cs +++ b/test/EFCore.SqlServer.Tests/Migrations/SqlServerMigrationsAnnotationProviderTest.cs @@ -16,7 +16,7 @@ public void For_property_handles_identity_annotations() modelBuilder.Entity().Property("Id").UseIdentityColumn(2, 3); var model = modelBuilder.FinalizeModel(designTime: true); - var property = model.FindEntityType(typeof(Entity)).FindProperty("Id"); + var property = model.FindEntityType(typeof(Entity))!.FindProperty("Id")!; var migrationAnnotations = _annotations.For(property.GetTableColumnMappings().Single().Column, true).ToList(); @@ -33,14 +33,14 @@ public void Resolves_column_names_for_Index_with_included_properties() var model = modelBuilder.FinalizeModel(designTime: true); Assert.Contains( - _annotations.For(model.FindEntityType(typeof(Entity)).GetIndexes().Single().GetMappedTableIndexes().Single(), true), - a => a.Name == SqlServerAnnotationNames.Include && ((string[])a.Value).Contains("IncludedColumn")); + _annotations.For(model.FindEntityType(typeof(Entity))!.GetIndexes().Single().GetMappedTableIndexes().Single(), true), + a => a.Name == SqlServerAnnotationNames.Include && ((string[])a.Value!).Contains("IncludedColumn")); } private class Entity { public int Id { get; set; } - public string IndexedProp { get; set; } - public string IncludedProp { get; set; } + public string IndexedProp { get; set; } = null!; + public string IncludedProp { get; set; } = null!; } } diff --git a/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs b/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs index 715017226c7..e97aed0f1f8 100644 --- a/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs +++ b/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs @@ -285,7 +285,7 @@ public void Rename_column_TPC() "Campaign", x => { - x.ToTable((string)null); + x.ToTable((string?)null); x.UseTpcMappingStrategy(); x.Property("Id"); x.Property("Status"); @@ -420,7 +420,7 @@ public void Alter_primary_key_clustering() Assert.Equal("bah", addOperation.Schema); Assert.Equal("Ram", addOperation.Table); Assert.Equal("PK_Ram", addOperation.Name); - Assert.True((bool)addOperation[SqlServerAnnotationNames.Clustered]); + Assert.True((bool)addOperation[SqlServerAnnotationNames.Clustered]!); }); [Fact] @@ -440,9 +440,9 @@ public void Add_non_clustered_primary_key_with_owned() Assert.Equal(1, operations.Count); var createTableOperation = Assert.IsType(operations[0]); - var addKey = createTableOperation.PrimaryKey; + var addKey = createTableOperation.PrimaryKey!; Assert.Equal("PK_Ram", addKey.Name); - Assert.False((bool)addKey[SqlServerAnnotationNames.Clustered]); + Assert.False((bool)addKey[SqlServerAnnotationNames.Clustered]!); }); [Fact] @@ -479,7 +479,7 @@ public void Alter_unique_constraint_clustering() Assert.Equal("bah", addOperation.Schema); Assert.Equal("Ewe", addOperation.Table); Assert.Equal("AK_Ewe_AlternateId", addOperation.Name); - Assert.True((bool)addOperation[SqlServerAnnotationNames.Clustered]); + Assert.True((bool)addOperation[SqlServerAnnotationNames.Clustered]!); }); [Fact] @@ -671,7 +671,7 @@ public void Alter_index_clustering() Assert.Equal("bah", createOperation.Schema); Assert.Equal("Mutton", createOperation.Table); Assert.Equal("IX_Mutton_Value", createOperation.Name); - Assert.True((bool)createOperation[SqlServerAnnotationNames.Clustered]); + Assert.True((bool)createOperation[SqlServerAnnotationNames.Clustered]!); }); public static int Function() @@ -684,7 +684,7 @@ public void Add_dbfunction_ignore() Execute( _ => { }, - modelBuilder => modelBuilder.HasDbFunction(mi), + modelBuilder => modelBuilder.HasDbFunction(mi!), operations => Assert.Equal(0, operations.Count)); } diff --git a/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs b/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs index c72ecbb3530..0a1fa7e95fb 100644 --- a/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs +++ b/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs @@ -73,7 +73,7 @@ public virtual void Use_provider_method_is_generated_correctly_with_NetTopologyS } private static readonly MethodInfo _setProviderOptionMethodInfo - = typeof(SqlServerCodeGeneratorTest).GetRuntimeMethod(nameof(SetProviderOption), [typeof(DbContextOptionsBuilder)]); + = typeof(SqlServerCodeGeneratorTest).GetRuntimeMethod(nameof(SetProviderOption), [typeof(DbContextOptionsBuilder)])!; public static SqlServerDbContextOptionsBuilder SetProviderOption(DbContextOptionsBuilder optionsBuilder) => throw new NotSupportedException(); diff --git a/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerConnectionTest.cs b/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerConnectionTest.cs index a83c88b635b..568dd25ddab 100644 --- a/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerConnectionTest.cs +++ b/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerConnectionTest.cs @@ -26,7 +26,7 @@ public void Can_create_master_connection() { using var connection = new SqlServerConnection(CreateDependencies()); using var master = connection.CreateMasterConnection(); - Assert.Equal(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master", StripApplicationName(master.ConnectionString)); + Assert.Equal(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master", StripApplicationName(master.ConnectionString!)); Assert.Equal(60, master.CommandTimeout); } @@ -41,7 +41,7 @@ public void Master_connection_string_contains_filename() using var connection = new SqlServerConnection(CreateDependencies(options)); using var master = connection.CreateMasterConnection(); - Assert.Equal(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master", StripApplicationName(master.ConnectionString)); + Assert.Equal(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master", StripApplicationName(master.ConnectionString!)); } [Fact] @@ -120,7 +120,7 @@ private static string StripApplicationName(string connectionString) return builder.ToString(); } - public static RelationalConnectionDependencies CreateDependencies(DbContextOptions options = null) + public static RelationalConnectionDependencies CreateDependencies(DbContextOptions? options = null) { options ??= new DbContextOptionsBuilder() .UseSqlServer(@"Server=(localdb)\MSSQLLocalDB;Database=SqlServerConnectionTest") @@ -160,7 +160,7 @@ public static RelationalConnectionDependencies CreateDependencies(DbContextOptio private const string ConnectionString = "Fake Connection String"; private static IDbContextOptions CreateOptions( - RelationalOptionsExtension optionsExtension = null) + RelationalOptionsExtension? optionsExtension = null) { var optionsBuilder = new DbContextOptionsBuilder(); diff --git a/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerDatabaseCreatorTest.cs b/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerDatabaseCreatorTest.cs index f61d15c6931..f2e9bdbe814 100644 --- a/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerDatabaseCreatorTest.cs +++ b/test/EFCore.SqlServer.Tests/Storage/Internal/SqlServerDatabaseCreatorTest.cs @@ -186,7 +186,7 @@ public IRelationalCommandBuilder RemoveParameterAt(int index) } public IRelationalTypeMappingSource TypeMappingSource - => null; + => null!; public IRelationalCommand Build() => new FakeRelationalCommand(); @@ -232,11 +232,11 @@ public int CommandTextLength private class FakeRelationalCommand : IRelationalCommand { - public string CommandText { get; } + public string CommandText { get; } = null!; - public string LogCommandText { get; } + public string LogCommandText { get; } = null!; - public IReadOnlyList Parameters { get; } + public IReadOnlyList Parameters { get; } = null!; public IReadOnlyDictionary ParameterValues => throw new NotImplementedException(); @@ -266,7 +266,7 @@ public DbCommand CreateDbCommand( public object ExecuteScalar(RelationalCommandParameterObject parameterObject) => throw new NotImplementedException(); - public Task ExecuteScalarAsync( + public Task ExecuteScalarAsync( RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken = default) => throw new NotImplementedException(); diff --git a/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingSourceTest.cs b/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingSourceTest.cs index b5f96d3044a..245ea723905 100644 --- a/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingSourceTest.cs +++ b/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingSourceTest.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Data; +using System.Diagnostics.CodeAnalysis; using Microsoft.Data.SqlTypes; using Microsoft.EntityFrameworkCore.Metadata.Internal; using Microsoft.EntityFrameworkCore.SqlServer.Infrastructure.Internal; @@ -294,7 +295,7 @@ public void Does_foreign_key_SQL_Server_string_mapping(Type type, bool? unicode, property.SetIsUnicode(unicode); property.SetIsFixedLength(fixedLength); var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", type); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); var model = property.DeclaringType.Model.FinalizeModel(); @@ -330,7 +331,7 @@ public void Does_required_foreign_key_SQL_Server_string_mapping(Type type, bool? property.SetIsUnicode(unicode); property.SetIsFixedLength(fixedLength); var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", type); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); fkProperty.IsNullable = false; @@ -394,7 +395,7 @@ public void Does_indexed_column_SQL_Server_string_mapping(Type type, bool? unico public void Does_IndexAttribute_column_SQL_Server_string_mapping(bool? unicode, bool? fixedLength) { var entityType = CreateEntityType(); - var property = entityType.FindProperty("Name"); + var property = entityType.FindProperty("Name")!; property.SetIsUnicode(unicode); property.SetIsFixedLength(fixedLength); @@ -659,7 +660,7 @@ public void Does_foreign_key_SQL_Server_string_mapping_ansi(Type type, bool? fix property.SetIsFixedLength(fixedLength); property.IsNullable = false; var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", type); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); var model = property.DeclaringType.Model.FinalizeModel(); @@ -693,7 +694,7 @@ public void Does_required_foreign_key_SQL_Server_string_mapping_ansi(Type type, property.SetIsFixedLength(fixedLength); property.IsNullable = false; var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", type); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); fkProperty.IsNullable = false; @@ -755,7 +756,7 @@ public void Does_indexed_column_SQL_Server_string_mapping_ansi(Type type, bool? public void Does_IndexAttribute_column_SQL_Server_string_mapping_ansi(bool? fixedLength) { var entityType = CreateEntityType(); - var property = entityType.FindProperty("Name"); + var property = entityType.FindProperty("Name")!; property.SetIsUnicode(false); property.SetIsFixedLength(fixedLength); @@ -862,7 +863,7 @@ public void Does_non_key_SQL_Server_required_binary_mapping(bool? fixedLength) } [Theory, InlineData("binary(100)", null), InlineData("binary(100)", 100), InlineData("binary", 100), InlineData(null, 100)] - public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_small_value(string typeName, int? maxLength) + public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_small_value(string? typeName, int? maxLength) { var typeMapping = CreateBinaryMapping(typeName, maxLength); @@ -876,7 +877,7 @@ public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_small_value } [Theory, InlineData("binary(100)", null), InlineData("binary(100)", 100), InlineData("binary", 100), InlineData(null, 100)] - public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_exact_value(string typeName, int? maxLength) + public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_exact_value(string? typeName, int? maxLength) { var typeMapping = CreateBinaryMapping(typeName, maxLength); @@ -890,7 +891,7 @@ public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_exact_value } [Theory, InlineData("binary(100)", null), InlineData("binary(100)", 100), InlineData("binary", 100), InlineData(null, 100)] - public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_large_value(string typeName, int? maxLength) + public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_large_value(string? typeName, int? maxLength) { var typeMapping = CreateBinaryMapping(typeName, maxLength); @@ -904,7 +905,7 @@ public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_large_value } [Theory, InlineData("binary(100)", null), InlineData("binary(100)", 100), InlineData("binary", 100), InlineData(null, 100)] - public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_extreme_value(string typeName, int? maxLength) + public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_extreme_value(string? typeName, int? maxLength) { var typeMapping = CreateBinaryMapping(typeName, maxLength); @@ -917,7 +918,7 @@ public void Does_non_key_SQL_Server_fixed_length_binary_mapping_with_extreme_val Assert.Equal(-1, parameter.Size); } - private RelationalTypeMapping CreateBinaryMapping(string typeName, int? maxLength) + private RelationalTypeMapping CreateBinaryMapping(string? typeName, int? maxLength) { var property = CreateEntityType().AddProperty("MyBinaryProp", typeof(byte[])); @@ -967,7 +968,7 @@ public void Does_foreign_key_SQL_Server_binary_mapping(bool? fixedLength) property.IsNullable = false; property.SetIsFixedLength(fixedLength); var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", typeof(byte[])); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); var model = property.DeclaringType.Model.FinalizeModel(); @@ -988,7 +989,7 @@ public void Does_required_foreign_key_SQL_Server_binary_mapping(bool? fixedLengt property.IsNullable = false; property.SetIsFixedLength(fixedLength); var fkProperty = ((IMutableEntityType)property.DeclaringType).AddProperty("FK", typeof(byte[])); - var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property); + var pk = ((IMutableEntityType)property.DeclaringType).SetPrimaryKey(property)!; ((IMutableEntityType)property.DeclaringType).AddForeignKey(fkProperty, pk, (IMutableEntityType)property.DeclaringType); fkProperty.IsNullable = false; @@ -1166,9 +1167,9 @@ public void Throws_for_unrecognized_property_types() // This is correct. SQL Server 'float' type maps to C# double // note: rowversion is a synonym stored the data type as 'timestamp' // case-insensitive - public void Can_map_by_store_type(string storeType, Type type, int? size, bool unicode, bool fixedLength, string expectedType = null) + public void Can_map_by_store_type(string storeType, Type type, int? size, bool unicode, bool fixedLength, string? expectedType = null) { - var mapping = CreateRelationalTypeMappingSource(CreateModel()).FindMapping(storeType); + var mapping = CreateRelationalTypeMappingSource(CreateModel()).FindMapping(storeType)!; Assert.Same(type, mapping.ClrType); Assert.Equal(size, mapping.Size); @@ -1181,7 +1182,7 @@ public void Can_map_by_store_type(string storeType, Type type, int? size, bool u InlineData(typeof(TimeOnly), "time"), InlineData(typeof(TimeSpan), "time"), InlineData(typeof(SqlVector), "vector(3)")] public void Can_map_by_clr_and_store_types(Type clrType, string storeType) { - var mapping = CreateRelationalTypeMappingSource(CreateModel()).FindMapping(clrType, storeType); + var mapping = CreateRelationalTypeMappingSource(CreateModel()).FindMapping(clrType, storeType)!; Assert.Equal(storeType, mapping.StoreType); Assert.Same(clrType, mapping.ClrType); @@ -1406,9 +1407,9 @@ public void Can_map_binary_base_type_name_and_size(string typeName) private class StringCheese { public int Id { get; set; } - public string StringWithSize { get; set; } - public List CollectionWithSize { get; set; } - public byte[] BinaryWithSize { get; set; } + public string StringWithSize { get; set; } = null!; + public List CollectionWithSize { get; set; } = null!; + public byte[] BinaryWithSize { get; set; } = null!; } [Fact] @@ -1419,11 +1420,11 @@ public void Key_with_store_type_is_picked_up_by_FK() Assert.Equal( "money", - mapper.GetMapping(model.FindEntityType(typeof(MyType)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyType))!.FindProperty("Id")!).StoreType); Assert.Equal( "money", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Relationship1Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1))!.FindProperty("Relationship1Id")!).StoreType); } [Fact] @@ -1434,11 +1435,11 @@ public void String_key_with_max_fixed_length_is_picked_up_by_FK() Assert.Equal( "nchar(200)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1))!.FindProperty("Id")!).StoreType); Assert.Equal( "nchar(200)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Relationship1Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2))!.FindProperty("Relationship1Id")!).StoreType); } [Fact] @@ -1449,11 +1450,11 @@ public void Binary_key_with_max_fixed_length_is_picked_up_by_FK() Assert.Equal( "binary(100)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2))!.FindProperty("Id")!).StoreType); Assert.Equal( "binary(100)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Relationship1Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3))!.FindProperty("Relationship1Id")!).StoreType); } [Fact] @@ -1464,11 +1465,11 @@ public void String_key_with_unicode_is_picked_up_by_FK() Assert.Equal( "varchar(900)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3))!.FindProperty("Id")!).StoreType); Assert.Equal( "varchar(900)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType4)).FindProperty("Relationship1Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType4))!.FindProperty("Relationship1Id")!).StoreType); } [Fact] @@ -1479,11 +1480,11 @@ public void Key_store_type_if_preferred_if_specified() Assert.Equal( "money", - mapper.GetMapping(model.FindEntityType(typeof(MyType)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyType))!.FindProperty("Id")!).StoreType); Assert.Equal( "dec(6,1)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Relationship2Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1))!.FindProperty("Relationship2Id")!).StoreType); } [Fact] @@ -1494,11 +1495,11 @@ public void String_FK_max_length_is_preferred_if_specified() Assert.Equal( "nchar(200)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType1))!.FindProperty("Id")!).StoreType); Assert.Equal( "nchar(787)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Relationship2Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2))!.FindProperty("Relationship2Id")!).StoreType); } [Fact] @@ -1509,11 +1510,11 @@ public void Binary_FK_max_length_is_preferred_if_specified() Assert.Equal( "binary(100)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType2))!.FindProperty("Id")!).StoreType); Assert.Equal( "binary(767)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Relationship2Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3))!.FindProperty("Relationship2Id")!).StoreType); } [Fact] @@ -1524,11 +1525,11 @@ public void String_FK_unicode_is_preferred_if_specified() Assert.Equal( "varchar(900)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3)).FindProperty("Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType3))!.FindProperty("Id")!).StoreType); Assert.Equal( "nvarchar(450)", - mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType4)).FindProperty("Relationship2Id")).StoreType); + mapper.GetMapping(model.FindEntityType(typeof(MyRelatedType4))!.FindProperty("Relationship2Id")!).StoreType); } #region Vector @@ -1593,7 +1594,7 @@ public void Json_is_mapped_to_nvarchar_with_UseSqlServer_by_default() public void Json_is_mapped_to_nvarchar_with_UseSqlServer_with_compatibility_level_170() { var typeMappingSource = CreateTypeMappingSource(o => - o.UseSqlServer((string)null, o => o.UseCompatibilityLevel(170))); + o.UseSqlServer((string?)null, o => o.UseCompatibilityLevel(170))); Assert.Equal("json", typeMappingSource.GetMapping(typeof(JsonTypePlaceholder)).StoreType); Assert.Equal("json", typeMappingSource.GetMapping(typeof(int[])).StoreType); @@ -1612,10 +1613,10 @@ public void Json_is_mapped_to_json_type_with_UseAzureSql_by_default() public void Json_is_mapped_to_nvarchar_with_compatibility_level_170_when_explicitly_specified() { var typeMappingSource = CreateTypeMappingSource(o => - o.UseSqlServer((string)null, o => o.UseCompatibilityLevel(170))); + o.UseSqlServer((string?)null, o => o.UseCompatibilityLevel(170))); - Assert.Equal("nvarchar(max)", typeMappingSource.FindMapping(typeof(JsonTypePlaceholder), "nvarchar(max)").StoreType); - Assert.Equal("nvarchar(max)", typeMappingSource.FindMapping(typeof(int[]), "nvarchar(max)").StoreType); + Assert.Equal("nvarchar(max)", typeMappingSource.FindMapping(typeof(JsonTypePlaceholder), "nvarchar(max)")!.StoreType); + Assert.Equal("nvarchar(max)", typeMappingSource.FindMapping(typeof(int[]), "nvarchar(max)")!.StoreType); } [Fact] @@ -1625,14 +1626,14 @@ public void Json_can_be_mapped_to_nvarchar_non_max() Assert.Equal( "nvarchar(2000)", - typeMappingSource.FindMapping(typeof(JsonTypePlaceholder), storeTypeName: "nvarchar(2000)").StoreType); + typeMappingSource.FindMapping(typeof(JsonTypePlaceholder), storeTypeName: "nvarchar(2000)")!.StoreType); Assert.Equal( "nvarchar(2000)", - typeMappingSource.FindMapping(typeof(int[]), storeTypeName: "nvarchar(2000)").StoreType); + typeMappingSource.FindMapping(typeof(int[]), storeTypeName: "nvarchar(2000)")!.StoreType); } - private SqlServerTypeMappingSource CreateTypeMappingSource(Action optionsAction = null) + private SqlServerTypeMappingSource CreateTypeMappingSource(Action optionsAction) { var optionsBuilder = new DbContextOptionsBuilder(); optionsAction(optionsBuilder); @@ -1663,7 +1664,7 @@ public void Plugins_can_override_builtin_mappings() private class FakeTypeMappingSourcePlugin : IRelationalTypeMappingSourcePlugin { - public RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + public RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => new StringTypeMapping("datetime2", null); } @@ -1687,7 +1688,7 @@ private enum ShortEnum : short; private enum ByteEnum : byte; - protected override ModelBuilder CreateModelBuilder(Action configureConventions = null) + protected override ModelBuilder CreateModelBuilder(Action? configureConventions = null) => SqlServerTestHelpers.Instance.CreateConventionBuilder(configureConventions: configureConventions); private class TestParameter : DbParameter @@ -1699,9 +1700,13 @@ public override void ResetDbType() public override DbType DbType { get; set; } public override ParameterDirection Direction { get; set; } public override bool IsNullable { get; set; } - public override string ParameterName { get; set; } - public override string SourceColumn { get; set; } - public override object Value { get; set; } + [AllowNull] + public override string ParameterName { get; set; } = null!; + + [AllowNull] + public override string SourceColumn { get; set; } = null!; + + public override object? Value { get; set; } public override bool SourceColumnNullMapping { get; set; } public override int Size { get; set; } } @@ -1712,13 +1717,14 @@ public override void Prepare() { } - public override string CommandText { get; set; } + [AllowNull] + public override string CommandText { get; set; } = null!; public override int CommandTimeout { get; set; } public override CommandType CommandType { get; set; } public override UpdateRowSource UpdatedRowSource { get; set; } - protected override DbConnection DbConnection { get; set; } - protected override DbParameterCollection DbParameterCollection { get; } - protected override DbTransaction DbTransaction { get; set; } + protected override DbConnection? DbConnection { get; set; } + protected override DbParameterCollection DbParameterCollection { get; } = null!; + protected override DbTransaction? DbTransaction { get; set; } public override bool DesignTimeVisible { get; set; } public override void Cancel() diff --git a/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingTest.cs b/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingTest.cs index 3a5218beefa..0577938d0e8 100644 --- a/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingTest.cs +++ b/test/EFCore.SqlServer.Tests/Storage/SqlServerTypeMappingTest.cs @@ -56,12 +56,12 @@ public void Row_version_is_marked_as_modified_only_if_it_really_changed(string m private class WithRowVersion { public int Id { get; set; } - public byte[] Version { get; set; } + public byte[] Version { get; set; } = null!; } private class OptimisticContext : DbContext { - public DbSet _ { get; set; } + public DbSet _ { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder @@ -90,7 +90,7 @@ public void Create_and_clone_SQL_Server_DateTime_mappings_with_converter() null, [FakeTypeMapping.CreateParameters(typeof(SqlServerDateTimeTypeMapping)), SqlDbType.SmallDateTime], null, - null); + null)!; var clone = AssertClone(typeof(SqlServerDateTimeTypeMapping), mapping); @@ -180,7 +180,7 @@ public static RelationalTypeMapping GetMapping(Type type) TestServiceFactory.Instance.Create(), TestServiceFactory.Instance.Create(), TestServiceFactory.Instance.Create()) - .FindMapping(type); + .FindMapping(type)!; public override void ByteArray_literal_generated_correctly() => Test_GenerateSqlLiteral_helper(GetMapping(typeof(byte[])), new byte[] { 0xDA, 0x7A }, "0xDA7A"); @@ -495,7 +495,7 @@ public virtual void Vector_default_provider_value_is_null_without_dimensions() #endregion Vector public static RelationalTypeMapping GetMapping(string type) - => GetTypeMappingSource().FindMapping(type); + => GetTypeMappingSource().FindMapping(type)!; public static SqlServerTypeMappingSource GetTypeMappingSource() => new( diff --git a/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchFactoryTest.cs b/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchFactoryTest.cs index ba8a648ae6c..5327d2494af 100644 --- a/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchFactoryTest.cs +++ b/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchFactoryTest.cs @@ -93,7 +93,7 @@ private class FakeDbContext : DbContext; private static INonTrackedModificationCommand CreateModificationCommand( string name, - string schema, + string? schema, bool sensitiveLoggingEnabled) { var modificationCommand = new ModificationCommandFactory().CreateNonTrackedModificationCommand( diff --git a/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchTest.cs b/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchTest.cs index 6a7e7637ff2..26946654773 100644 --- a/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchTest.cs +++ b/test/EFCore.SqlServer.Tests/Update/SqlServerModificationCommandBatchTest.cs @@ -34,7 +34,7 @@ public void AddCommand_returns_false_when_max_batch_size_is_reached(EntityState public void AddCommand_returns_false_when_max_parameters_are_reached(EntityState entityState, bool withSameTable) { var typeMapper = CreateTypeMappingSource(); - var intMapping = typeMapper.FindMapping(typeof(int)); + var intMapping = typeMapper.FindMapping(typeof(int))!; var paramIndex = 0; var batch = CreateBatch(); @@ -71,7 +71,7 @@ ColumnModificationParameters CreateModificationParameters(string columnName) public void AddCommand_when_max_parameters_are_reached_with_pending_commands(bool lastCommandPending) { var typeMapper = CreateTypeMappingSource(); - var intMapping = typeMapper.FindMapping(typeof(int)); + var intMapping = typeMapper.FindMapping(typeof(int))!; var paramIndex = 0; var batch = CreateBatch(); @@ -151,7 +151,7 @@ private static SqlServerTypeMappingSource CreateTypeMappingSource() private static INonTrackedModificationCommand CreateModificationCommand( string name, - string schema, + string? schema, bool sensitiveLoggingEnabled) => new ModificationCommandFactory().CreateNonTrackedModificationCommand( new NonTrackedModificationCommandParameters(name, schema, sensitiveLoggingEnabled)); @@ -159,11 +159,11 @@ private static INonTrackedModificationCommand CreateModificationCommand( private class TestSqlServerModificationCommandBatch(ModificationCommandBatchFactoryDependencies dependencies, int maxBatchSize) : SqlServerModificationCommandBatch(dependencies, maxBatchSize) { - public new Dictionary ParameterValues + public new Dictionary ParameterValues => base.ParameterValues; public new RawSqlCommand StoreCommand - => base.StoreCommand; + => base.StoreCommand!; public new IList ResultSetMappings => base.ResultSetMappings; diff --git a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerSequenceValueGeneratorTest.cs b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerSequenceValueGeneratorTest.cs index 02f7bf96190..80f1aa38f14 100644 --- a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerSequenceValueGeneratorTest.cs +++ b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerSequenceValueGeneratorTest.cs @@ -70,10 +70,10 @@ private async Task Generates_sequential_values(bool async) for (var i = 1; i <= 27; i++) { var value = async - ? await generator.NextAsync(null) - : generator.Next(null); + ? await generator.NextAsync(null!) + : generator.Next(null!); - Assert.Equal(i, (int)Convert.ChangeType(value, typeof(int), CultureInfo.InvariantCulture)); + Assert.Equal(i, (int)Convert.ChangeType(value, typeof(int), CultureInfo.InvariantCulture)!); } } @@ -135,8 +135,8 @@ private async Task>> GenerateValuesInMultipleThreads(int var generator = new SqlServerSequenceHiLoValueGenerator(executor, sqlGenerator, state, connection, logger); var value = j % 2 == 0 - ? await generator.NextAsync(null) - : generator.Next(null); + ? await generator.NextAsync(null!) + : generator.Next(null!); generatedValues[testNumber].Add(value); } @@ -177,7 +177,7 @@ public void Does_not_generate_temp_values() Assert.False(generator.GeneratesTemporaryValues); } - private static ISqlServerConnection CreateConnection(IServiceProvider serviceProvider = null) + private static ISqlServerConnection CreateConnection(IServiceProvider? serviceProvider = null) { serviceProvider ??= SqlServerTestHelpers.Instance.CreateServiceProvider(); @@ -192,14 +192,14 @@ private class FakeRawSqlCommandBuilder(int blockSize) : IRawSqlCommandBuilder public IRelationalCommand Build(string sql) => new FakeRelationalCommand(this); - public RawSqlCommand Build(string sql, IEnumerable parameters) + public RawSqlCommand Build(string sql, IEnumerable parameters) => throw new NotImplementedException(); public RawSqlCommand Build( string sql, - IEnumerable parameters, + IEnumerable parameters, IModel model) - => new(new FakeRelationalCommand(this), new Dictionary()); + => new(new FakeRelationalCommand(this), new Dictionary()); private class FakeRelationalCommand(FakeRawSqlCommandBuilder commandBuilder) : IRelationalCommand { @@ -214,7 +214,7 @@ public string LogCommandText public IReadOnlyList Parameters => throw new NotImplementedException(); - public IReadOnlyDictionary ParameterValues + public IReadOnlyDictionary ParameterValues => throw new NotImplementedException(); public int ExecuteNonQuery(RelationalCommandParameterObject parameterObject) @@ -228,10 +228,10 @@ public Task ExecuteNonQueryAsync( public object ExecuteScalar(RelationalCommandParameterObject parameterObject) => Interlocked.Add(ref _commandBuilder._current, _commandBuilder._blockSize); - public Task ExecuteScalarAsync( + public Task ExecuteScalarAsync( RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken = default) - => Task.FromResult(Interlocked.Add(ref _commandBuilder._current, _commandBuilder._blockSize)); + => Task.FromResult(Interlocked.Add(ref _commandBuilder._current, _commandBuilder._blockSize)); public RelationalDataReader ExecuteReader(RelationalCommandParameterObject parameterObject) => throw new NotImplementedException(); diff --git a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorCacheTest.cs b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorCacheTest.cs index ddd635e0d2d..da00d356e63 100644 --- a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorCacheTest.cs +++ b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorCacheTest.cs @@ -15,7 +15,7 @@ public class SqlServerValueGeneratorCacheTest public void Uses_single_generator_per_property() { var model = CreateModel(); - var entityType = model.FindEntityType(typeof(Led)); + var entityType = model.FindEntityType(typeof(Led))!; var property1 = GetProperty1(model); var property2 = GetProperty2(model); var cache = SqlServerTestHelpers.Instance.CreateContextServices(model).GetRequiredService(); @@ -94,8 +94,8 @@ public void Uses_single_sequence_generator_per_server() } private static FakeRelationalConnection CreateConnection( - string databaseName = null, - string serverName = null) + string? databaseName = null, + string? serverName = null) { var connection = new FakeRelationalConnection(); connection.UseConnection( @@ -434,13 +434,13 @@ private class Robot } private static IProperty GetProperty1(IModel model) - => model.FindEntityType(typeof(Led)).FindProperty("Zeppelin"); + => model.FindEntityType(typeof(Led))!.FindProperty("Zeppelin")!; private static IProperty GetProperty2(IModel model) - => model.FindEntityType(typeof(Led)).FindProperty("Stairway"); + => model.FindEntityType(typeof(Led))!.FindProperty("Stairway")!; private static IProperty GetProperty3(IModel model) - => model.FindEntityType(typeof(Led)).FindProperty("WholeLotta"); + => model.FindEntityType(typeof(Led))!.FindProperty("WholeLotta")!; private static IModel CreateModel() { diff --git a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorSelectorTest.cs b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorSelectorTest.cs index c4b9fdcb2c8..09fbc045943 100644 --- a/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorSelectorTest.cs +++ b/test/EFCore.SqlServer.Tests/ValueGeneration/SqlServerValueGeneratorSelectorTest.cs @@ -63,7 +63,7 @@ private void AssertGenerator(string propertyName, bool useHiLo = fals private static ValueGenerator CreateValueGenerator(IValueGeneratorSelector selector, IProperty property, bool useTry) { selector.TrySelect(property, property.DeclaringType, out var generator); - return generator; + return generator!; } [Theory, InlineData(true), InlineData(false)] @@ -214,9 +214,9 @@ private class AnEntity public long? NullableLong { get; set; } public short? NullableShort { get; set; } public byte? NullableByte { get; set; } - public string String { get; set; } + public string String { get; set; } = null!; public Guid Guid { get; set; } - public byte[] Binary { get; set; } + public byte[] Binary { get; set; } = null!; public float Float { get; set; } public decimal Decimal { get; set; } public TimeSpan TimeSpan { get; set; } diff --git a/test/EFCore.Sqlite.FunctionalTests/AutoincrementTest.cs b/test/EFCore.Sqlite.FunctionalTests/AutoincrementTest.cs index d9102a2ee1b..a17aef143db 100644 --- a/test/EFCore.Sqlite.FunctionalTests/AutoincrementTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/AutoincrementTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class AutoincrementTest(AutoincrementTest.AutoincrementFixture fixture) : IClassFixture { protected AutoincrementFixture Fixture { get; } = fixture; @@ -50,12 +48,12 @@ protected override Type ContextType protected class BatContext(DbContextOptions options) : PoolableDbContext(options) { - public DbSet People { get; set; } + public DbSet People { get; set; } = null!; } protected class PersonA { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } } diff --git a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs index 297a55c9b88..3d9a99a410b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs @@ -9,8 +9,6 @@ // ReSharper disable ParameterOnlyUsedForPreconditionCheck.Local namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class BuiltInDataTypesSqliteTest : BuiltInDataTypesTestBase { public BuiltInDataTypesSqliteTest(BuiltInDataTypesSqliteFixture fixture, ITestOutputHelper testOutputHelper) @@ -807,7 +805,7 @@ public void Can_get_column_types_from_built_model() { Assert.Equal( columnType.ToLowerInvariant(), - typeMapper.FindMapping(property).StoreType.ToLowerInvariant()); + typeMapper.FindMapping(property)!.StoreType.ToLowerInvariant()); } } } @@ -1634,7 +1632,7 @@ public virtual void Can_query_using_hex_function() using var context = CreateContext(); var results = context.Set() - .Select(e => EF.Functions.Hex(e.Bytes)).ToList(); + .Select(e => EF.Functions.Hex(e.Bytes!)).ToList(); AssertSql( """ @@ -1643,7 +1641,7 @@ SELECT hex("o"."Bytes") """); var expectedResults = context.Set().AsEnumerable() - .Select(e => string.Concat(e.Bytes.Select(b => b.ToString("X2")))).ToList(); + .Select(e => string.Concat(e.Bytes!.Select(b => b.ToString("X2")))).ToList(); Assert.Equal(expectedResults, results); } @@ -1654,7 +1652,7 @@ public virtual void Can_query_using_unhex_function() using var context = CreateContext(); var results = context.Set() - .Select(e => EF.Functions.Unhex(EF.Functions.Hex(e.Bytes))).ToList(); + .Select(e => EF.Functions.Unhex(EF.Functions.Hex(e.Bytes!))!).ToList(); AssertSql( """ @@ -1663,7 +1661,7 @@ SELECT unhex(hex("o"."Bytes")) """); var expectedResults = context.Set().AsEnumerable() - .Select(e => e.Bytes).ToList(); + .Select(e => e.Bytes!).ToList(); Assert.Equal(expectedResults, results); } @@ -1674,7 +1672,7 @@ public virtual void Can_query_using_unhex_function_with_ignore_chars() using var context = CreateContext(); var results = context.Set() - .Select(e => EF.Functions.Unhex(EF.Functions.Hex(e.Bytes) + "!?", "!?")).ToList(); + .Select(e => EF.Functions.Unhex(EF.Functions.Hex(e.Bytes!) + "!?", "!?")!).ToList(); AssertSql( """ @@ -1683,7 +1681,7 @@ SELECT unhex(COALESCE(hex("o"."Bytes"), '') || '!?', '!?') """); var expectedResults = context.Set().AsEnumerable() - .Select(e => e.Bytes).ToList(); + .Select(e => e.Bytes!).ToList(); Assert.Equal(expectedResults, results); } @@ -1718,7 +1716,7 @@ public virtual void Can_query_using_substr_function() using var context = CreateContext(); var results = context.Set() - .Select(e => EF.Functions.Substr(e.Bytes, 2)).ToList(); + .Select(e => EF.Functions.Substr(e.Bytes!, 2)).ToList(); AssertSql( """ @@ -1727,7 +1725,7 @@ SELECT substr("o"."Bytes", 2) """); var expectedResults = context.Set().AsEnumerable() - .Select(e => e.Bytes.Skip(1).ToArray()).ToList(); + .Select(e => e.Bytes!.Skip(1).ToArray()).ToList(); Assert.Equal(expectedResults, results); } @@ -1738,7 +1736,7 @@ public virtual void Can_query_using_substr_function_with_length() using var context = CreateContext(); var results = context.Set() - .Select(e => EF.Functions.Substr(e.Bytes, 1, 1)).ToList(); + .Select(e => EF.Functions.Substr(e.Bytes!, 1, 1)).ToList(); AssertSql( """ @@ -1747,7 +1745,7 @@ SELECT substr("o"."Bytes", 1, 1) """); var expectedResults = context.Set().AsEnumerable() - .Select(e => e.Bytes.Take(1).ToArray()).ToList(); + .Select(e => e.Bytes!.Take(1).ToArray()).ToList(); Assert.Equal(expectedResults, results); } @@ -2084,17 +2082,17 @@ protected class MappedDataTypes public int Id { get; set; } public long Integer { get; set; } public double Real { get; set; } - public string Text { get; set; } - public byte[] Blob { get; set; } - public string SomeString { get; set; } + public string Text { get; set; } = null!; + public byte[] Blob { get; set; } = null!; + public string SomeString { get; set; } = null!; public int Int { get; set; } } protected class MappedSizedDataTypes { public int Id { get; set; } - public string Nvarchar { get; set; } - public byte[] Binary { get; set; } + public string? Nvarchar { get; set; } + public byte[]? Binary { get; set; } } protected class MappedScaledDataTypes @@ -2117,9 +2115,9 @@ protected class MappedNullableDataTypes public int Id { get; set; } public long? Integer { get; set; } public double? Real { get; set; } - public string Text { get; set; } - public byte[] Blob { get; set; } - public string SomeString { get; set; } + public string? Text { get; set; } + public byte[]? Blob { get; set; } + public string? SomeString { get; set; } public int? Int { get; set; } } @@ -2129,9 +2127,9 @@ protected class MappedDataTypesWithIdentity public int AltId { get; set; } public long Integer { get; set; } public double Real { get; set; } - public string Text { get; set; } - public byte[] Blob { get; set; } - public string SomeString { get; set; } + public string Text { get; set; } = null!; + public byte[] Blob { get; set; } = null!; + public string SomeString { get; set; } = null!; public int Int { get; set; } } @@ -2139,8 +2137,8 @@ protected class MappedSizedDataTypesWithIdentity { public int Id { get; set; } public int AltId { get; set; } - public string Nvarchar { get; set; } - public byte[] Binary { get; set; } + public string? Nvarchar { get; set; } + public byte[]? Binary { get; set; } } protected class MappedScaledDataTypesWithIdentity @@ -2166,9 +2164,9 @@ protected class MappedNullableDataTypesWithIdentity public int AltId { get; set; } public long? Integer { get; set; } public double? Real { get; set; } - public string Text { get; set; } - public byte[] Blob { get; set; } - public string SomeString { get; set; } + public string? Text { get; set; } + public byte[]? Blob { get; set; } + public string? SomeString { get; set; } public int? Int { get; set; } } } diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteFixture.cs index f626bab8ac4..3a8ac7802b5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCFiltersInheritanceBulkUpdatesSqliteFixture : TPCInheritanceBulkUpdatesSqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteTest.cs index 55cf7b4a2b5..7a571c76911 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCFiltersInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCFiltersInheritanceBulkUpdatesSqliteTest( TPCFiltersInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteFixture.cs index 29112c759f8..ea731b3a7db 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCInheritanceBulkUpdatesSqliteFixture : TPCInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteTest.cs index fc7a9b588fc..aba1e6dd5e4 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPCInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPCInheritanceBulkUpdatesSqliteTest( TPCInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteFixture.cs index 6fb361e796b..435ba77ee2d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHFiltersInheritanceBulkUpdatesSqliteFixture : TPHInheritanceBulkUpdatesSqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteTest.cs index bbad201d45e..a00eff3357e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHFiltersInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHFiltersInheritanceBulkUpdatesSqliteTest( TPHFiltersInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteFixture.cs index 422005f8d01..e9196c4d73f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHInheritanceBulkUpdatesSqliteFixture : TPHInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteTest.cs index 9aae699255e..38ab2dd0e03 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPHInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPHInheritanceBulkUpdatesSqliteTest( TPHInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteFixture.cs index d6d3b4ba646..f9d231c9fba 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTFiltersInheritanceBulkUpdatesSqliteFixture : TPTInheritanceBulkUpdatesSqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteTest.cs index c2ea40b77d1..8e1001b84b7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTFiltersInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTFiltersInheritanceBulkUpdatesSqliteTest( TPTFiltersInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteFixture.cs index c5e6492e663..132aa77fb14 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTInheritanceBulkUpdatesSqliteFixture : TPTInheritanceBulkUpdatesFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteTest.cs index 166b6f25ed8..552744924a6 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/Inheritance/TPTInheritanceBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates.Inheritance; -#nullable disable - public class TPTInheritanceBulkUpdatesSqliteTest( TPTInheritanceBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqliteTest.cs index 7db63b4ea52..61487f55406 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NonSharedModelBulkUpdatesSqliteTest(NonSharedFixture fixture) : NonSharedModelBulkUpdatesRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteFixture.cs index 9c63144fe5f..112d190c100 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NorthwindBulkUpdatesSqliteFixture : NorthwindBulkUpdatesRelationalFixture where TModelCustomizer : ITestModelCustomizer, new() { diff --git a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteTest.cs index c6aa9536405..e3363746d7a 100644 --- a/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/BulkUpdates/NorthwindBulkUpdatesSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.BulkUpdates; -#nullable disable - public class NorthwindBulkUpdatesSqliteTest( NorthwindBulkUpdatesSqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/CommandConfigurationTest.cs b/test/EFCore.Sqlite.FunctionalTests/CommandConfigurationTest.cs index c5c8d00a6ac..593ea3aa3d6 100644 --- a/test/EFCore.Sqlite.FunctionalTests/CommandConfigurationTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/CommandConfigurationTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CommandConfigurationTest(CommandConfigurationTest.CommandConfigurationTestFixture fixture) : IClassFixture { diff --git a/test/EFCore.Sqlite.FunctionalTests/CommandInterceptionSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/CommandInterceptionSqliteTest.cs index cfe84dc7768..977228e4957 100644 --- a/test/EFCore.Sqlite.FunctionalTests/CommandInterceptionSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/CommandInterceptionSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class CommandInterceptionSqliteTestBase(CommandInterceptionSqliteTestBase.InterceptionSqliteFixtureBase fixture) : CommandInterceptionTestBase(fixture) { @@ -16,7 +14,7 @@ public override async Task Intercept_query_passively(bool async, bool in """, await base.Intercept_query_passively(async, inject)); - return null; + return null!; } protected override async Task QueryMutationTest(bool async, bool inject) @@ -27,7 +25,7 @@ protected override async Task QueryMutationTest(bool async """, await base.QueryMutationTest(async, inject)); - return null; + return null!; } public override async Task Intercept_query_to_replace_execution(bool async, bool inject) @@ -38,7 +36,7 @@ public override async Task Intercept_query_to_replace_execution(bool asy """, await base.Intercept_query_to_replace_execution(async, inject)); - return null; + return null!; } public abstract class InterceptionSqliteFixtureBase : InterceptionFixtureBase diff --git a/test/EFCore.Sqlite.FunctionalTests/CompositeKeyEndToEndSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/CompositeKeyEndToEndSqliteTest.cs index d7dc5a96e75..2341245d83f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/CompositeKeyEndToEndSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/CompositeKeyEndToEndSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CompositeKeyEndToEndSqliteTest(CompositeKeyEndToEndSqliteTest.CompositeKeyEndToEndSqliteFixture fixture) : CompositeKeyEndToEndTestBase< CompositeKeyEndToEndSqliteTest.CompositeKeyEndToEndSqliteFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorDisabledSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorDisabledSqliteTest.cs index 66180cd39cc..9944c7e83de 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorDisabledSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorDisabledSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorDisabledSqliteTest(ConcurrencyDetectorDisabledSqliteTest.ConcurrencyDetectorSqlServerFixture fixture) : ConcurrencyDetectorDisabledRelationalTestBase< ConcurrencyDetectorDisabledSqliteTest.ConcurrencyDetectorSqlServerFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorEnabledSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorEnabledSqliteTest.cs index 2a7ada241f5..8ac35e2ef9f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorEnabledSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ConcurrencyDetectorEnabledSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConcurrencyDetectorEnabledSqliteTest(ConcurrencyDetectorEnabledSqliteTest.ConcurrencyDetectorSqlServerFixture fixture) : ConcurrencyDetectorEnabledRelationalTestBase< ConcurrencyDetectorEnabledSqliteTest.ConcurrencyDetectorSqlServerFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/ConferencePlannerSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ConferencePlannerSqliteTest.cs index 3623dd58059..cff48d29a97 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ConferencePlannerSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ConferencePlannerSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConferencePlannerSqliteTest(ConferencePlannerSqliteTest.ConferencePlannerSqliteFixture fixture) : ConferencePlannerTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/ConvertToProviderTypesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ConvertToProviderTypesSqliteTest.cs index 72648d36875..0fe95c10a7b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ConvertToProviderTypesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ConvertToProviderTypesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ConvertToProviderTypesSqliteTest : ConvertToProviderTypesTestBase< ConvertToProviderTypesSqliteTest.ConvertToProviderTypesSqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/CustomConvertersSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/CustomConvertersSqliteTest.cs index de71cb4ca5a..20ee6c3a85b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/CustomConvertersSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/CustomConvertersSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class CustomConvertersSqliteTest : CustomConvertersTestBase { public CustomConvertersSqliteTest(CustomConvertersSqliteFixture fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/DataAnnotationSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/DataAnnotationSqliteTest.cs index 7572ec3744c..51aeaac15bc 100644 --- a/test/EFCore.Sqlite.FunctionalTests/DataAnnotationSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/DataAnnotationSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DataAnnotationSqliteTest : DataAnnotationRelationalTestBase { public DataAnnotationSqliteTest(DataAnnotationSqliteFixture fixture, ITestOutputHelper testOutputHelper) @@ -83,7 +81,7 @@ public override IModel TableNameAttribute_affects_table_name_in_TPH() { var model = base.TableNameAttribute_affects_table_name_in_TPH(); - var relational = model.FindEntityType(typeof(TNAttrBase)); + var relational = model.FindEntityType(typeof(TNAttrBase))!; Assert.Equal("A", relational.GetTableName()); return model; @@ -155,7 +153,7 @@ public override async Task DatabaseGeneratedAttribute_autogenerates_values_when_ public override Task MaxLengthAttribute_throws_while_inserting_value_longer_than_max_length() { using var context = CreateContext(); - Assert.Equal(10, context.Model.FindEntityType(typeof(One)).FindProperty("MaxLengthProperty").GetMaxLength()); + Assert.Equal(10, context.Model.FindEntityType(typeof(One))!.FindProperty("MaxLengthProperty")!.GetMaxLength()); return Task.CompletedTask; } @@ -163,7 +161,7 @@ public override Task MaxLengthAttribute_throws_while_inserting_value_longer_than public override Task StringLengthAttribute_throws_while_inserting_value_longer_than_max_length() { using var context = CreateContext(); - Assert.Equal(16, context.Model.FindEntityType(typeof(Two)).FindProperty("Data").GetMaxLength()); + Assert.Equal(16, context.Model.FindEntityType(typeof(Two))!.FindProperty("Data")!.GetMaxLength()); return Task.CompletedTask; } @@ -171,7 +169,7 @@ public override Task StringLengthAttribute_throws_while_inserting_value_longer_t public override Task TimestampAttribute_throws_if_value_in_database_changed() { using var context = CreateContext(); - Assert.True(context.Model.FindEntityType(typeof(Two)).FindProperty("Timestamp").IsConcurrencyToken); + Assert.True(context.Model.FindEntityType(typeof(Two))!.FindProperty("Timestamp")!.IsConcurrencyToken); return Task.CompletedTask; } diff --git a/test/EFCore.Sqlite.FunctionalTests/DataBindingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/DataBindingSqliteTest.cs index de23a85a1bb..374bd127b9d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/DataBindingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/DataBindingSqliteTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DataBindingSqliteTest(F1SqliteFixture fixture) : DataBindingTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/DefaultValuesTest.cs b/test/EFCore.Sqlite.FunctionalTests/DefaultValuesTest.cs index fa1f6af90de..0e99915548e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/DefaultValuesTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/DefaultValuesTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DefaultValuesTest : SharedStoreFixtureBase { [Fact] @@ -46,7 +44,7 @@ private ChipsContext CreateChipsContext() private class ChipsContext(DbContextOptions options) : PoolableDbContext(options) { // ReSharper disable once UnusedAutoPropertyAccessor.Local - public DbSet Chips { get; set; } + public DbSet Chips { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity() @@ -59,7 +57,7 @@ private class KettleChips // ReSharper disable once UnusedMember.Local public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime BestBuyDate { get; set; } } } diff --git a/test/EFCore.Sqlite.FunctionalTests/DesignTimeSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/DesignTimeSqliteTest.cs index df3993b67aa..7417a48cdf5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/DesignTimeSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/DesignTimeSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class DesignTimeSqliteTest(DesignTimeSqliteTest.DesignTimeSqliteFixture fixture) : DesignTimeTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/EntitySplittingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/EntitySplittingSqliteTest.cs index 3c2befe026d..e9a3d855e3d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/EntitySplittingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/EntitySplittingSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class EntitySplittingSqliteTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : EntitySplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/F1SqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/F1SqliteFixture.cs index edfc45e01d3..ce5c1c21774 100644 --- a/test/EFCore.Sqlite.FunctionalTests/F1SqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/F1SqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class F1ULongSqliteFixture : F1SqliteFixtureBase { protected override string StoreName diff --git a/test/EFCore.Sqlite.FunctionalTests/FieldMappingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/FieldMappingSqliteTest.cs index d43df20a56c..2b8b4108531 100644 --- a/test/EFCore.Sqlite.FunctionalTests/FieldMappingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/FieldMappingSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class FieldMappingSqliteTest { public abstract class FieldMappingSqliteTestBase(TFixture fixture) : FieldMappingTestBase(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/FieldsOnlyLoadSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/FieldsOnlyLoadSqliteTest.cs index 2f37fed9f75..c3c7230b211 100644 --- a/test/EFCore.Sqlite.FunctionalTests/FieldsOnlyLoadSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/FieldsOnlyLoadSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class FieldsOnlyLoadSqliteTest(FieldsOnlyLoadSqliteTest.FieldsOnlyLoadSqliteFixture fixture) : FieldsOnlyLoadTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/FindSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/FindSqliteTest.cs index acd6a98fe39..c88658f0cd9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/FindSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/FindSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class FindSqliteTest(FindSqliteTest.FindSqliteFixture fixture) : FindTestBase(fixture) { public class FindSqliteTestSet(FindSqliteFixture fixture) : FindSqliteTest(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedChangingNotificationsTest.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedChangingNotificationsTest.cs index aab570391b1..a85d360454b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedChangingNotificationsTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedChangingNotificationsTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqliteChangedChangingNotificationsTest(GraphUpdatesSqliteChangedChangingNotificationsTest.SqliteFixture fixture) : GraphUpdatesSqliteTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedNotificationsTest.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedNotificationsTest.cs index b5c6931d73c..e7d4e2fba4c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedNotificationsTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteChangedNotificationsTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqliteChangedNotificationsTest(GraphUpdatesSqliteChangedNotificationsTest.SqliteFixture fixture) : GraphUpdatesSqliteTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteFullWithOriginalsNotificationsTest.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteFullWithOriginalsNotificationsTest.cs index bfbd3247120..70f76c1ba3a 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteFullWithOriginalsNotificationsTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteFullWithOriginalsNotificationsTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqliteFullWithOriginalsNotificationsTest( GraphUpdatesSqliteFullWithOriginalsNotificationsTest.SqliteFixture fixture) : GraphUpdatesSqliteTestBase(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteSnapshotNotificationsTest.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteSnapshotNotificationsTest.cs index f9dc972a7e2..467d1f972c9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteSnapshotNotificationsTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteSnapshotNotificationsTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class GraphUpdatesSqliteSnapshotNotificationsTest(GraphUpdatesSqliteSnapshotNotificationsTest.SqliteFixture fixture) : GraphUpdatesSqliteTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteTestBase.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteTestBase.cs index ab496341967..65381c276eb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteTestBase.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/GraphUpdatesSqliteTestBase.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class GraphUpdatesSqliteTestBase(TFixture fixture) : GraphUpdatesTestBase(fixture) where TFixture : GraphUpdatesSqliteTestBase.GraphUpdatesSqliteFixtureBase, new() { diff --git a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqliteTest.cs index 0c73959efb9..06c1a0e11b8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/GraphUpdates/ProxyGraphUpdatesSqliteTest.cs @@ -4,8 +4,6 @@ #pragma warning disable RCS1102 // Make class static. namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ProxyGraphUpdatesSqliteTest { public abstract class ProxyGraphUpdatesSqliteTestBase(TFixture fixture) : ProxyGraphUpdatesTestBase(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/KeysWithConvertersSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/KeysWithConvertersSqliteTest.cs index e28983f94ae..ac3cea291bc 100644 --- a/test/EFCore.Sqlite.FunctionalTests/KeysWithConvertersSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/KeysWithConvertersSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class KeysWithConvertersSqliteTest(KeysWithConvertersSqliteTest.KeysWithConvertersSqliteFixture fixture) : KeysWithConvertersTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/LazyLoadProxySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/LazyLoadProxySqliteTest.cs index 7c6482d7225..48b92b39c45 100644 --- a/test/EFCore.Sqlite.FunctionalTests/LazyLoadProxySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/LazyLoadProxySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LazyLoadProxySqliteTest(LazyLoadProxySqliteTest.LoadSqliteFixture fixture) : LazyLoadProxyRelationalTestBase(fixture) { @@ -14,17 +12,17 @@ public void IsLoaded_is_not_set_if_loading_principal_collection_fails() using var context = Fixture.CreateContext(); var principal = context.Set().Single(); - Assert.False(context.Entry(principal).Collection(e => e.Children).IsLoaded); + Assert.False(context.Entry(principal).Collection(e => e.Children!).IsLoaded); Fixture.Interceptor.Throw = true; Assert.Equal("Bang!", Assert.Throws(() => principal.Children).Message); - Assert.False(context.Entry(principal).Collection(e => e.Children).IsLoaded); + Assert.False(context.Entry(principal).Collection(e => e.Children!).IsLoaded); Fixture.Interceptor.Throw = false; - Assert.NotEmpty(principal.Children); - Assert.True(context.Entry(principal).Collection(e => e.Children).IsLoaded); + Assert.NotEmpty(principal.Children!); + Assert.True(context.Entry(principal).Collection(e => e.Children!).IsLoaded); } [Fact] @@ -52,17 +50,17 @@ public void IsLoaded_is_not_set_if_loading_many_to_many_collection_fails() using var context = Fixture.CreateContext(); var principal = context.Set().Single(); - Assert.False(context.Entry(principal).Collection(e => e.ManyChildren).IsLoaded); + Assert.False(context.Entry(principal).Collection(e => e.ManyChildren!).IsLoaded); Fixture.Interceptor.Throw = true; Assert.Equal("Bang!", Assert.Throws(() => principal.ManyChildren).Message); - Assert.False(context.Entry(principal).Collection(e => e.ManyChildren).IsLoaded); + Assert.False(context.Entry(principal).Collection(e => e.ManyChildren!).IsLoaded); Fixture.Interceptor.Throw = false; - Assert.NotEmpty(principal.ManyChildren); - Assert.True(context.Entry(principal).Collection(e => e.ManyChildren).IsLoaded); + Assert.NotEmpty(principal.ManyChildren!); + Assert.True(context.Entry(principal).Collection(e => e.ManyChildren!).IsLoaded); } [Fact] diff --git a/test/EFCore.Sqlite.FunctionalTests/LoadSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/LoadSqliteTest.cs index 0c56df45c46..e9d5cb2d565 100644 --- a/test/EFCore.Sqlite.FunctionalTests/LoadSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/LoadSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LoadSqliteTest(LoadSqliteTest.LoadSqliteFixture fixture) : LoadTestBase(fixture) { public class LoadSqliteFixture : LoadFixtureBase diff --git a/test/EFCore.Sqlite.FunctionalTests/LoggingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/LoggingSqliteTest.cs index 1aaa266779b..70c7c499943 100644 --- a/test/EFCore.Sqlite.FunctionalTests/LoggingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/LoggingSqliteTest.cs @@ -9,8 +9,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class LoggingSqliteTest : LoggingRelationalTestBase { [Fact] @@ -38,7 +36,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) protected override DbContextOptionsBuilder CreateOptionsBuilder( IServiceCollection services, - Action> relationalAction) + Action>? relationalAction) => new DbContextOptionsBuilder() .UseInternalServiceProvider(services.AddEntityFrameworkSqlite().BuildServiceProvider(validateScopes: true)) .UseSqlite("Data Source=LoggingSqliteTest.db", relationalAction); @@ -51,5 +49,5 @@ protected override string ProviderName protected override string ProviderVersion => typeof(SqliteOptionsExtension).Assembly - .GetCustomAttribute()?.InformationalVersion; + .GetCustomAttribute()!.InformationalVersion; } diff --git a/test/EFCore.Sqlite.FunctionalTests/ManyToManyFieldsLoadSqliteTestBase.cs b/test/EFCore.Sqlite.FunctionalTests/ManyToManyFieldsLoadSqliteTestBase.cs index f80b5006b15..f66ea6fd0eb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ManyToManyFieldsLoadSqliteTestBase.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ManyToManyFieldsLoadSqliteTestBase.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyFieldsLoadSqliteTest(ManyToManyFieldsLoadSqliteTest.ManyToManyFieldsLoadSqliteFixture fixture) : ManyToManyFieldsLoadTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadProxySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadProxySqliteTest.cs index fb3d43f5e49..6d4fd9c9c12 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadProxySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadProxySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyLoadProxySqliteTest(ManyToManyLoadProxySqliteTest.ManyToManyLoadProxySqliteFixture fixture) : ManyToManyLoadSqliteTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTest.cs index 95cececc79d..33a7ca36ada 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyLoadSqliteTest(ManyToManyLoadSqliteTest.ManyToManyLoadSqliteFixture fixture) : ManyToManyLoadSqliteTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTestBase.cs b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTestBase.cs index bcab822638d..ba6d7d87e7e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTestBase.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ManyToManyLoadSqliteTestBase.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class ManyToManyLoadSqliteTestBase(TFixture fixture) : ManyToManyLoadTestBase(fixture) where TFixture : ManyToManyLoadSqliteTestBase.ManyToManyLoadSqliteFixtureBase { diff --git a/test/EFCore.Sqlite.FunctionalTests/ManyToManyTrackingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ManyToManyTrackingSqliteTest.cs index ea62b0d4dbb..01eab0d454b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ManyToManyTrackingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ManyToManyTrackingSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ManyToManyTrackingSqliteTest(ManyToManyTrackingSqliteTest.ManyToManyTrackingSqliteFixture fixture) : ManyToManyTrackingRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsInfrastructureSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsInfrastructureSqliteTest.cs index ec1a4c6c68b..07fc8a2e323 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsInfrastructureSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsInfrastructureSqliteTest.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#nullable disable - using System.Data; using Identity30.Data; using Microsoft.EntityFrameworkCore.TestModels.AspNetIdentity; @@ -1095,19 +1093,19 @@ namespace ModelSnapshot22 public class Blog { public int Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } - public ICollection Posts { get; set; } + public ICollection Posts { get; set; } = null!; } public class Post { public int Id { get; set; } - public string Title { get; set; } - public string Content { get; set; } + public string? Title { get; set; } + public string? Content { get; set; } public DateTime EditDate { get; set; } - public Blog Blog { get; set; } + public Blog? Blog { get; set; } } public class BloggingContext : DbContext @@ -1115,7 +1113,7 @@ public class BloggingContext : DbContext protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlite("DataSource=Test.db"); - public DbSet Blogs { get; set; } + public DbSet Blogs { get; set; } = null!; } } @@ -1152,6 +1150,45 @@ protected override void OnModelCreating(ModelBuilder builder) builder.Entity>(b => b.ToTable("AspNetRoleClaims")); builder.Entity>(b => b.ToTable("AspNetUserRoles")); + + builder.Entity(b => + { + b.Property(e => e.ConcurrencyStamp).IsRequired(false); + b.Property(e => e.Name).IsRequired(false); + b.Property(e => e.NormalizedName).IsRequired(false); + }); + + builder.Entity>(b => + { + b.Property(e => e.ClaimType).IsRequired(false); + b.Property(e => e.ClaimValue).IsRequired(false); + }); + + builder.Entity(b => + { + b.Property(e => e.ConcurrencyStamp).IsRequired(false); + b.Property(e => e.Email).IsRequired(false); + b.Property(e => e.NormalizedEmail).IsRequired(false); + b.Property(e => e.NormalizedUserName).IsRequired(false); + b.Property(e => e.PasswordHash).IsRequired(false); + b.Property(e => e.PhoneNumber).IsRequired(false); + b.Property(e => e.SecurityStamp).IsRequired(false); + b.Property(e => e.UserName).IsRequired(false); + }); + + builder.Entity>(b => + { + b.Property(e => e.ClaimType).IsRequired(false); + b.Property(e => e.ClaimValue).IsRequired(false); + }); + + builder.Entity>() + .Property(e => e.ProviderDisplayName) + .IsRequired(false); + + builder.Entity>() + .Property(e => e.Value) + .IsRequired(false); } } } diff --git a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs index 97fb52fee93..36faa40369c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Migrations; -#nullable disable - public class SqliteMigrationsSqlGeneratorTest() : MigrationsSqlGeneratorTestBase( SqliteTestHelpers.Instance, new ServiceCollection().AddEntityFrameworkSqliteNetTopologySuite(), @@ -105,7 +103,7 @@ public override void DefaultValue_with_line_breaks_2(bool isUnicode) } [Theory, InlineData(true, null), InlineData(false, "PK_Id")] - public void CreateTableOperation_with_annotations(bool autoincrement, string pkName) + public void CreateTableOperation_with_annotations(bool autoincrement, string? pkName) { var addIdColumn = new AddColumnOperation { @@ -120,6 +118,12 @@ public void CreateTableOperation_with_annotations(bool autoincrement, string pkN addIdColumn.AddAnnotation(SqliteAnnotationNames.Autoincrement, true); } + var primaryKey = new AddPrimaryKeyOperation { Columns = ["Id"] }; + if (pkName is not null) + { + primaryKey.Name = pkName; + } + Generate( new CreateTableOperation { @@ -144,7 +148,7 @@ public void CreateTableOperation_with_annotations(bool autoincrement, string pkN IsNullable = true } }, - PrimaryKey = new AddPrimaryKeyOperation { Name = pkName, Columns = ["Id"] }, + PrimaryKey = primaryKey, UniqueConstraints = { new AddUniqueConstraintOperation { Columns = ["SSN"] } }, ForeignKeys = { diff --git a/test/EFCore.Sqlite.FunctionalTests/ModelBuilding101SqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/ModelBuilding101SqliteTest.cs index 743d440e7f3..e1199904ee7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/ModelBuilding101SqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/ModelBuilding101SqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class ModelBuilding101SqliteTest : ModelBuilding101RelationalTestBase { protected override DbContextOptionsBuilder ConfigureContext(DbContextOptionsBuilder optionsBuilder) diff --git a/test/EFCore.Sqlite.FunctionalTests/MonsterFixupChangedOnlySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/MonsterFixupChangedOnlySqliteTest.cs index 856a6f6db95..fe351d22639 100644 --- a/test/EFCore.Sqlite.FunctionalTests/MonsterFixupChangedOnlySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/MonsterFixupChangedOnlySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class MonsterFixupChangedOnlySqliteTest(MonsterFixupChangedOnlySqliteTest.MonsterFixupChangedOnlySqliteFixture fixture) : MonsterFixupTestBase< MonsterFixupChangedOnlySqliteTest.MonsterFixupChangedOnlySqliteFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/MusicStoreSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/MusicStoreSqliteTest.cs index 10dc7a646d8..18968b25c2d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/MusicStoreSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/MusicStoreSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class MusicStoreSqliteTest(MusicStoreSqliteTest.MusicStoreSqliteFixture fixture) : MusicStoreTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/NonLoadingNavigationsManyToManyLoadSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/NonLoadingNavigationsManyToManyLoadSqliteTest.cs index c2db9ef9d5a..cccb93c425c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/NonLoadingNavigationsManyToManyLoadSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/NonLoadingNavigationsManyToManyLoadSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class NonLoadingNavigationsManyToManyLoadSqliteTest( NonLoadingNavigationsManyToManyLoadSqliteTest.NonLoadingNavigationsManyToManyLoadSqliteFixture fixture) : ManyToManyLoadTestBase(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/NotificationEntitiesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/NotificationEntitiesSqliteTest.cs index b07ccf6367c..44cf5739964 100644 --- a/test/EFCore.Sqlite.FunctionalTests/NotificationEntitiesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/NotificationEntitiesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class NotificationEntitiesSqliteTest(NotificationEntitiesSqliteTest.NotificationEntitiesSqliteFixture fixture) : NotificationEntitiesTestBase< NotificationEntitiesSqliteTest.NotificationEntitiesSqliteFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/OptimisticConcurrencySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/OptimisticConcurrencySqliteTest.cs index 049125c7a66..60620e2c396 100644 --- a/test/EFCore.Sqlite.FunctionalTests/OptimisticConcurrencySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/OptimisticConcurrencySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OptimisticConcurrencyULongSqliteTest(F1ULongSqliteFixture fixture) : OptimisticConcurrencySqliteTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/OverzealousInitializationSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/OverzealousInitializationSqliteTest.cs index bf4e7eff59d..08099bf6adf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/OverzealousInitializationSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/OverzealousInitializationSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class OverzealousInitializationSqliteTest(OverzealousInitializationSqliteTest.OverzealousInitializationSqliteFixture fixture) : OverzealousInitializationTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/PropertyValuesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/PropertyValuesSqliteTest.cs index 3baabbdf2e7..02e5a60b5b5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/PropertyValuesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/PropertyValuesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class PropertyValuesSqliteTest(PropertyValuesSqliteTest.PropertyValuesSqliteFixture fixture) : PropertyValuesRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqliteTest.cs index 702194f2d90..a1d369efd7f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocAdvancedMappingsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocAdvancedMappingsQuerySqliteTest(NonSharedFixture fixture) : AdHocAdvancedMappingsQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocMiscellaneousQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocMiscellaneousQuerySqliteTest.cs index 544d98e117c..e7ae4984b9f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocMiscellaneousQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocMiscellaneousQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocMiscellaneousQuerySqliteTest(NonSharedFixture fixture) : AdHocMiscellaneousQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -225,7 +223,7 @@ protected class Dependent13146 { public int Id { get; set; } public int PrincipalId { get; set; } - public Principal13146 Principal { get; set; } + public Principal13146 Principal { get; set; } = null!; } #endregion diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocNavigationsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocNavigationsQuerySqliteTest.cs index 173e277f20c..d1d01d0b859 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocNavigationsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocNavigationsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocNavigationsQuerySqliteTest(NonSharedFixture fixture) : AdHocNavigationsQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQueryFiltersQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQueryFiltersQuerySqliteTest.cs index 830ff841272..e95ca23e073 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQueryFiltersQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQueryFiltersQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocQueryFiltersQuerySqliteTest(NonSharedFixture fixture) : AdHocQueryFiltersQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQuerySplittingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQuerySplittingQuerySqliteTest.cs index 0ded39b3cf6..d38c96a5745 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQuerySplittingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/AdHocQuerySplittingQuerySqliteTest.cs @@ -5,15 +5,13 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class AdHocQuerySplittingQuerySqliteTest(NonSharedFixture fixture) : AdHocQuerySplittingQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory => SqliteTestStoreFactory.Instance; private static readonly FieldInfo _querySplittingBehaviorFieldInfo = - typeof(RelationalOptionsExtension).GetField("_querySplittingBehavior", BindingFlags.NonPublic | BindingFlags.Instance); + typeof(RelationalOptionsExtension).GetField("_querySplittingBehavior", BindingFlags.NonPublic | BindingFlags.Instance)!; protected override DbContextOptionsBuilder SetQuerySplittingBehavior( DbContextOptionsBuilder optionsBuilder, diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/BadDataSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/BadDataSqliteTest.cs index 411c7aa2639..76b860bb5a5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/BadDataSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/BadDataSqliteTest.cs @@ -9,8 +9,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class BadDataSqliteTest(BadDataSqliteTest.BadDataSqliteFixture fixture) : IClassFixture { public BadDataSqliteFixture Fixture { get; } = fixture; @@ -110,16 +108,16 @@ public void Bad_data_error_handling_null_no_tracking() private class BadDataCommandBuilderFactory( RelationalCommandBuilderDependencies dependencies) : RelationalCommandBuilderFactory(dependencies) { - public object[] Values { private get; set; } + public object?[] Values { private get; set; } = null!; public override IRelationalCommandBuilder Create() => new BadDataRelationalCommandBuilder(Dependencies, Values); private class BadDataRelationalCommandBuilder( RelationalCommandBuilderDependencies dependencies, - object[] values) : RelationalCommandBuilder(dependencies) + object?[] values) : RelationalCommandBuilder(dependencies) { - private readonly object[] _values = values; + private readonly object?[] _values = values; public override IRelationalCommand Build() => new BadDataRelationalCommand(Dependencies, ToString(), ToString(), Parameters, _values); @@ -129,9 +127,9 @@ private class BadDataRelationalCommand( string commandText, string logCommandText, IReadOnlyList parameters, - object[] values) : RelationalCommand(dependencies, commandText, logCommandText, parameters) + object?[] values) : RelationalCommand(dependencies, commandText, logCommandText, parameters) { - private object[] _values = values; + private object?[] _values = values; public override RelationalDataReader ExecuteReader( RelationalCommandParameterObject parameterObject) @@ -156,9 +154,9 @@ public override void PopulateFrom(IRelationalCommandTemplate commandTemplate) private class BadDataRelationalDataReader : RelationalDataReader; - private class BadDataDataReader(object[] values) : DbDataReader + private class BadDataDataReader(object?[] values) : DbDataReader { - private readonly object[] _values = values; + private readonly object?[] _values = values; public override bool Read() => true; @@ -179,7 +177,7 @@ public override string GetString(int ordinal) => (string)GetValue(ordinal); public override object GetValue(int ordinal) - => _values[ordinal]; + => _values[ordinal]!; #region NotImplemented members @@ -219,13 +217,13 @@ public override int GetOrdinal(string name) public override byte GetByte(int ordinal) => throw new NotImplementedException(); - public override long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length) + public override long GetBytes(int ordinal, long dataOffset, byte[]? buffer, int bufferOffset, int length) => throw new NotImplementedException(); public override char GetChar(int ordinal) => throw new NotImplementedException(); - public override long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length) + public override long GetChars(int ordinal, long dataOffset, char[]? buffer, int bufferOffset, int length) => throw new NotImplementedException(); public override Guid GetGuid(int ordinal) @@ -261,7 +259,7 @@ public override IEnumerator GetEnumerator() } } - private NorthwindContext CreateContext(params object[] values) + private NorthwindContext CreateContext(params object?[] values) { var context = Fixture.CreateContext(); @@ -301,16 +299,17 @@ public Task RollbackTransactionAsync(CancellationToken cancellationToken = defau public IDbContextTransaction CurrentTransaction => throw new NotImplementedException(); - public SemaphoreSlim Semaphore { get; } + public SemaphoreSlim Semaphore { get; } = null!; - public string ConnectionString { get; set; } + public string? ConnectionString { get; set; } + [System.Diagnostics.CodeAnalysis.AllowNull] public DbConnection DbConnection { get; set; } = new SqliteConnection(); - public void SetDbConnection(DbConnection value, bool contextOwnsConnection) + public void SetDbConnection(DbConnection? value, bool contextOwnsConnection) => throw new NotImplementedException(); public DbContext Context - => null; + => null!; public Guid ConnectionId { get; } public int? CommandTimeout { get; set; } @@ -335,19 +334,19 @@ public Task BeginTransactionAsync( CancellationToken cancellationToken = default) => throw new NotImplementedException(); - public IDbContextTransaction UseTransaction(DbTransaction transaction) + public IDbContextTransaction? UseTransaction(DbTransaction? transaction) => throw new NotImplementedException(); - public IDbContextTransaction UseTransaction(DbTransaction transaction, Guid transactionId) + public IDbContextTransaction? UseTransaction(DbTransaction? transaction, Guid transactionId) => throw new NotImplementedException(); - public Task UseTransactionAsync( - DbTransaction transaction, + public Task UseTransactionAsync( + DbTransaction? transaction, CancellationToken cancellationToken = default) => throw new NotImplementedException(); - public Task UseTransactionAsync( - DbTransaction transaction, + public Task UseTransactionAsync( + DbTransaction? transaction, Guid transactionId, CancellationToken cancellationToken = default) => throw new NotImplementedException(); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqliteTest.cs index 05e22c234e6..f1ea279566d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsQuerySqliteTest(ComplexNavigationsQuerySqliteFixture fixture) : ComplexNavigationsCollectionsQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqliteTest.cs index 3debbb6d20d..c143cd40c04 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSharedTypeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSharedTypeQuerySqliteTest(ComplexNavigationsSharedTypeQuerySqliteFixture fixture) : ComplexNavigationsCollectionsSharedTypeQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqliteTest.cs index c555039c0da..459105f33cf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSplitQuerySqliteTest(ComplexNavigationsQuerySqliteFixture fixture) : ComplexNavigationsCollectionsSplitQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqliteTest.cs index 6e3bc4d5c71..bf39d1d4bc7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsCollectionsSplitSharedTypeQuerySqliteTest(ComplexNavigationsSharedTypeQuerySqliteFixture fixture) : ComplexNavigationsCollectionsSplitSharedTypeQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteFixture.cs index 0936b3d9035..42721d415a7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsQuerySqliteFixture : ComplexNavigationsQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteTest.cs index 465e30e2ad3..a107fea5590 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsQuerySqliteTest(ComplexNavigationsQuerySqliteFixture fixture) : ComplexNavigationsQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteFixture.cs index 3e2d56bfa3b..8274b66047a 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsSharedTypeQuerySqliteFixture : ComplexNavigationsSharedTypeQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteTest.cs index ab9878ce96a..30f7c2626f0 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexNavigationsSharedTypeQuerySqliteTest(ComplexNavigationsSharedTypeQuerySqliteFixture fixture) : ComplexNavigationsSharedTypeQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexTypeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexTypeQuerySqliteTest.cs index 7fd751eb058..110a247bd80 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ComplexTypeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ComplexTypeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ComplexTypeQuerySqliteTest : ComplexTypeQueryRelationalTestBase< ComplexTypeQuerySqliteTest.ComplexTypeQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteFixture.cs index bc945076e1c..ec83dcef1cf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysQuerySqliteFixture : CompositeKeysQueryRelationalFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteTest.cs index 62fc09d239b..9d95b923220 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysQuerySqliteTest(CompositeKeysQuerySqliteFixture fixture) : CompositeKeysQueryRelationalTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysSplitQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysSplitQuerySqliteTest.cs index d63ff98bfb0..f3ad6a944b9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysSplitQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/CompositeKeysSplitQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class CompositeKeysSplitQuerySqliteTest(CompositeKeysQuerySqliteFixture fixture) : CompositeKeysSplitQueryRelationalTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Ef6GroupBySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Ef6GroupBySqliteTest.cs index cbe604c706a..647c79edbcb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Ef6GroupBySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Ef6GroupBySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class Ef6GroupBySqliteTest : Ef6GroupByTestBase { public Ef6GroupBySqliteTest(Ef6GroupBySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/EntitySplittingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/EntitySplittingQuerySqliteTest.cs index c874637415f..e8a20257e0c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/EntitySplittingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/EntitySplittingQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class EntitySplittingQuerySqliteTest(NonSharedFixture fixture) : EntitySplittingQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/FunkyDataQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/FunkyDataQuerySqliteTest.cs index a0758d59cc3..e3a48f65a2c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/FunkyDataQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/FunkyDataQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class FunkyDataQuerySqliteTest : FunkyDataQueryTestBase { public FunkyDataQuerySqliteTest(FunkyDataQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarFromSqlQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarFromSqlQuerySqliteTest.cs index dca636023dc..4a372815324 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarFromSqlQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarFromSqlQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarFromSqlQuerySqliteTest(GearsOfWarQuerySqliteFixture fixture) : GearsOfWarFromSqlQueryTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteFixture.cs index 0e8f76297e2..c6000055fb2 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarQuerySqliteFixture : GearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteTest.cs index a4e93dad4f4..2f30101b711 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/GearsOfWarQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class GearsOfWarQuerySqliteTest : GearsOfWarQueryRelationalTestBase { public GearsOfWarQuerySqliteTest(GearsOfWarQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/IncludeOneToOneSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/IncludeOneToOneSqliteTest.cs index cf47b21fbab..81c1359346f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/IncludeOneToOneSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/IncludeOneToOneSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class IncludeOneToOneSqliteTest(IncludeOneToOneSqliteTest.OneToOneQuerySqliteFixture fixture) : IncludeOneToOneTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteFixture.cs index 9ef577aadbe..10789c36929 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class IncompleteMappingInheritanceQuerySqliteFixture : TPHInheritanceQuerySqliteFixture { public override bool IsDiscriminatorMappingComplete diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteTest.cs index 782cbda162a..5c0116bef5b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/IncompleteMappingInheritanceQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class IncompleteMappingInheritanceQuerySqliteTest( IncompleteMappingInheritanceQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteFixture.cs index 29b501586ab..b527c8b0df2 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCFiltersInheritanceQuerySqliteFixture : TPCInheritanceQuerySqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteTest.cs index 2d152211ba0..99ecdbe7c06 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCFiltersInheritanceQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCFiltersInheritanceQuerySqliteTest(TPCFiltersInheritanceQuerySqliteFixture fixture) : TPCFiltersInheritanceQueryTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteFixture.cs index 3ca3ee656d1..b2fa440b4bf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCGearsOfWarQuerySqliteFixture : TPCGearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteTest.cs index c901da54410..71e432c8399 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCGearsOfWarQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCGearsOfWarQuerySqliteTest : TPCGearsOfWarQueryRelationalTestBase { public TPCGearsOfWarQuerySqliteTest(TPCGearsOfWarQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteFixture.cs index f8581b87454..17add5ac9b9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCInheritanceQuerySqliteFixture : TPCInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteTest.cs index bd826f988df..9f6fd005ede 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCInheritanceQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCInheritanceQuerySqliteTest(TPCInheritanceQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) : TPCInheritanceQueryTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqliteTest.cs index 867f2dad75d..aa02c01de6d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyNoTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyNoTrackingQuerySqliteTest(TPCManyToManyQuerySqliteFixture fixture) : TPCManyToManyNoTrackingQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteFixture.cs index 03604d04170..6678e87545d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyQuerySqliteFixture : TPCManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteTest.cs index ca7a71aac2f..d0607dc27ae 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCManyToManyQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPCManyToManyQuerySqliteTest(TPCManyToManyQuerySqliteFixture fixture) : TPCManyToManyQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqliteTest.cs index f30b7fb66be..048764618d6 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPCRelationshipsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - internal class TPCRelationshipsQuerySqliteTest(TPCRelationshipsQuerySqliteTest.TPCRelationshipsQuerySqliteFixture fixture) : TPCRelationshipsQueryTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteFixture.cs index a0c1471b425..9f77c2f36d7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHFiltersInheritanceQuerySqliteFixture : TPHInheritanceQuerySqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteTest.cs index a970c521148..de182a8739c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHFiltersInheritanceQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHFiltersInheritanceQuerySqliteTest(TPHFiltersInheritanceQuerySqliteFixture fixture) : FiltersInheritanceQueryTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqliteFixture.cs index 56870f62b94..8500a6dfd40 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPHInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPHInheritanceQuerySqliteFixture : TPHInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteFixture.cs index 757965a6d96..ead12cb57c5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTFiltersInheritanceQuerySqliteFixture : TPTInheritanceQuerySqliteFixture { public override bool EnableFilters diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteTest.cs index 0714aa8b707..a3c89897eb3 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTFiltersInheritanceQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTFiltersInheritanceQuerySqliteTest(TPTFiltersInheritanceQuerySqliteFixture fixture) : TPTFiltersInheritanceQueryTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteFixture.cs index d25c7ad4c34..a4a9e792bc8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTGearsOfWarQuerySqliteFixture : TPTGearsOfWarQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteTest.cs index c3166497c72..006d0027c4e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTGearsOfWarQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTGearsOfWarQuerySqliteTest : TPTGearsOfWarQueryRelationalTestBase { public TPTGearsOfWarQuerySqliteTest(TPTGearsOfWarQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteFixture.cs index 0e4a8829b42..419f6e5017e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTInheritanceQuerySqliteFixture : TPTInheritanceQueryFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteTest.cs index 3482d5982a7..63d9644a8c1 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTInheritanceQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTInheritanceQuerySqliteTest(TPTInheritanceQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) : TPTInheritanceQueryTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqliteTest.cs index 9595ffc1643..841f4e4f7aa 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyNoTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyNoTrackingQuerySqliteTest(TPTManyToManyQuerySqliteFixture fixture) : TPTManyToManyNoTrackingQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteFixture.cs index 217d4b627ac..4c4fe124069 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyQuerySqliteFixture : TPTManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteTest.cs index 40a68ab204f..bc25120d185 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTManyToManyQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTManyToManyQuerySqliteTest(TPTManyToManyQuerySqliteFixture fixture) : TPTManyToManyQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqliteTest.cs index 9e74a19104f..8f6ff4dd8d7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/Inheritance/TPTRelationshipsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class TPTRelationshipsQuerySqliteTest(TPTRelationshipsQuerySqliteTest.TPTRelationshipsQuerySqliteFixture fixture) : TPTRelationshipsQueryTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceQuerySqliteTest.cs index 8e9efa4d27d..8456f3df945 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query.Inheritance; -#nullable disable - public class InheritanceQuerySqliteTest(TPHInheritanceQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) : TPHInheritanceQueryTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceRelationshipsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceRelationshipsQuerySqliteTest.cs index 143c10781d2..4da8483f692 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceRelationshipsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/InheritanceRelationshipsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class InheritanceRelationshipsQuerySqliteTest( InheritanceRelationshipsQuerySqliteTest.InheritanceRelationshipsQuerySqliteFixture fixture) : InheritanceRelationshipsQueryRelationalTestBase( diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteFixture.cs index 64928ac4ccc..4cfc0c6b8f8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class JsonQuerySqliteFixture : JsonQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteTest.cs index 72fc33239a7..8a972cab40a 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/JsonQuerySqliteTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class JsonQuerySqliteTest : JsonQueryRelationalTestBase { public JsonQuerySqliteTest(JsonQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingQuerySqliteTest.cs index 9d991eb371b..a7c766ef7bd 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyNoTrackingQuerySqliteTest(ManyToManyQuerySqliteFixture fixture) : ManyToManyNoTrackingQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingSplitQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingSplitQuerySqliteTest.cs index dbb1e3bfef7..fabd009dce4 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingSplitQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyNoTrackingSplitQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyNoTrackingSplitQuerySqliteTest(ManyToManySplitQuerySqliteFixture fixture) : ManyToManyNoTrackingQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteFixture.cs index fd8890d3d16..51e1b649f03 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyQuerySqliteFixture : ManyToManyQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteTest.cs index 0454af51da6..ee3287a97da 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManyQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManyQuerySqliteTest(ManyToManyQuerySqliteFixture fixture) : ManyToManyQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteFixture.cs index da22c52f8a3..4279f4421c9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManySplitQuerySqliteFixture : ManyToManyQuerySqliteFixture { protected override string StoreName diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteTest.cs index 4ce0b6aea4b..be69e1fb7bb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ManyToManySplitQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ManyToManySplitQuerySqliteTest(ManyToManySplitQuerySqliteFixture fixture) : ManyToManyQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/MappingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/MappingQuerySqliteTest.cs index 2176228684a..68f3ea1cbe0 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/MappingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/MappingQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class MappingQuerySqliteTest(MappingQuerySqliteTest.MappingQuerySqliteFixture fixture) : MappingQueryTestBase(fixture) { @@ -54,7 +52,7 @@ public class MappingQuerySqliteFixture : MappingQueryFixtureBase protected override ITestStoreFactory TestStoreFactory => SqliteNorthwindTestStoreFactory.Instance; - protected override string DatabaseSchema { get; } = null; + protected override string DatabaseSchema { get; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqliteTest.cs index e49bef70eb8..e7c7146ef6d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAggregateOperatorsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAggregateOperatorsQuerySqliteTest : NorthwindAggregateOperatorsQueryRelationalTestBase< NorthwindQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqliteTest.cs index 592ac1f807c..04fa253b959 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsNoTrackingQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAsNoTrackingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindAsNoTrackingQueryTestBase>(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsTrackingQuerySqliteTest.cs index 5331f1d6491..3a6b8ac22de 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindAsTrackingQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindAsTrackingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindAsTrackingQueryTestBase>(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindChangeTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindChangeTrackingQuerySqliteTest.cs index 6cdf6312fcc..4e07586ebe1 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindChangeTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindChangeTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindChangeTrackingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindChangeTrackingQueryTestBase< NorthwindQuerySqliteFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindCompiledQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindCompiledQuerySqliteTest.cs index eda573f3af1..0440eb644ae 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindCompiledQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindCompiledQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindCompiledQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindCompiledQueryTestBase>(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindDbFunctionsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindDbFunctionsQuerySqliteTest.cs index 19354fb2d84..baf148f3aea 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindDbFunctionsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindDbFunctionsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindDbFunctionsQuerySqliteTest : NorthwindDbFunctionsQueryRelationalTestBase< NorthwindQuerySqliteFixture> { @@ -23,8 +21,8 @@ await AssertCount( async, ss => ss.Set(), ss => ss.Set(), - c => EF.Functions.Glob(c.ContactName, "*M*"), - c => c.ContactName.Contains("M")); + c => EF.Functions.Glob(c.ContactName!, "*M*"), + c => c.ContactName!.Contains("M")); AssertSql( """ diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqliteTest.cs index c3ec9c5afeb..71981e1e95e 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindEFPropertyIncludeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindEFPropertyIncludeQuerySqliteTest( NorthwindQuerySqliteFixture fixture) : NorthwindEFPropertyIncludeQueryTestBase>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindFunctionsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindFunctionsQuerySqliteTest.cs index 0a91e11d311..069f1b77761 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindFunctionsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindFunctionsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindFunctionsQuerySqliteTest : NorthwindFunctionsQueryRelationalTestBase< NorthwindQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindGroupByQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindGroupByQuerySqliteTest.cs index dc15f8763a2..aef1772eecd 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindGroupByQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindGroupByQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindGroupByQuerySqliteTest : NorthwindGroupByQueryRelationalTestBase> { public NorthwindGroupByQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqliteTest.cs index 277bf286280..cb7571e7327 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeNoTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindIncludeNoTrackingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindIncludeNoTrackingQueryTestBase>(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeQuerySqliteTest.cs index 9c315ddf02f..44a62fd8d72 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindIncludeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindIncludeQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindIncludeQueryRelationalTestBase>(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindJoinQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindJoinQuerySqliteTest.cs index 12bad7410ea..8270dabcbec 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindJoinQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindJoinQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindJoinQuerySqliteTest : NorthwindJoinQueryRelationalTestBase> { public NorthwindJoinQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqliteTest.cs index a3a16b3b956..f33d10d07a8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindKeylessEntitiesQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindKeylessEntitiesQuerySqliteTest : NorthwindKeylessEntitiesQueryRelationalTestBase< NorthwindQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindMiscellaneousQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindMiscellaneousQuerySqliteTest.cs index acff78c014e..c594004957d 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindMiscellaneousQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindMiscellaneousQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindMiscellaneousQuerySqliteTest : NorthwindMiscellaneousQueryRelationalTestBase< NorthwindQuerySqliteFixture> { @@ -58,7 +56,7 @@ public virtual async Task Select_datetime_millisecond_component_composed(bool as { await AssertQueryScalar( async, - ss => ss.Set().Select(o => o.OrderDate.Value.AddYears(1).Millisecond)); + ss => ss.Set().Select(o => o.OrderDate!.Value.AddYears(1).Millisecond)); AssertSql( """ @@ -72,7 +70,7 @@ public virtual async Task Select_datetime_TimeOfDay_component_composed(bool asyn { await AssertQueryScalar( async, - ss => ss.Set().Select(o => o.OrderDate.Value.AddYears(1).TimeOfDay)); + ss => ss.Set().Select(o => o.OrderDate!.Value.AddYears(1).TimeOfDay)); AssertSql( """ @@ -99,7 +97,7 @@ await AssertQuery( async, ss => ss.Set() .Where(o => o.OrderDate != null) - .Select(o => new Order { OrderDate = o.OrderDate.Value.AddMonths(1) }), + .Select(o => new Order { OrderDate = o.OrderDate!.Value.AddMonths(1) }), e => e.OrderDate, elementAsserter: (e, a) => { @@ -109,7 +107,7 @@ await AssertQuery( // difference between how Sqlite and everyone else add months // e.g. when adding 1 month to Jan 31st, we get March 2/3 on Sqlite and Feb 28th/29ths for everyone else // see notes on issue #25851 for more details - var diff = (e.OrderDate - a.OrderDate).Value; + var diff = (e.OrderDate - a.OrderDate)!.Value; Assert.True(diff.Days is >= -3 and <= 0); Assert.Equal(0, diff.Hours); Assert.Equal(0, diff.Minutes); @@ -169,7 +167,7 @@ public override async Task Select_expression_datetime_add_ticks(bool async) await AssertQuery( async, ss => ss.Set().Where(o => o.OrderDate != null) - .Select(o => new Order { OrderDate = o.OrderDate.Value.AddTicks(10 * TimeSpan.TicksPerSecond) }), + .Select(o => new Order { OrderDate = o.OrderDate!.Value.AddTicks(10 * TimeSpan.TicksPerSecond) }), e => e.OrderDate); AssertSql( @@ -316,10 +314,10 @@ LIMIT @p } public override Task Complex_nested_query_doesnt_try_binding_to_grandparent_when_parent_returns_complex_result(bool async) - => null; + => null!; public override Task SelectMany_correlated_subquery_hard(bool async) - => null; + => null!; public override async Task SelectMany_correlated_with_Select_value_type_and_DefaultIfEmpty_in_selector(bool async) => Assert.Equal( diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindNavigationsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindNavigationsQuerySqliteTest.cs index a5fb3a81226..efc7e7546dc 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindNavigationsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindNavigationsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindNavigationsQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindNavigationsQueryRelationalTestBase< NorthwindQuerySqliteFixture>(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryFiltersQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryFiltersQuerySqliteTest.cs index 24d4e281557..db130f38afd 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryFiltersQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryFiltersQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQueryFiltersQuerySqliteTest : NorthwindQueryFiltersQueryTestBase< NorthwindQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQuerySqliteFixture.cs index 88feedba963..2c3771ea216 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQuerySqliteFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQuerySqliteFixture : NorthwindQueryRelationalFixture where TModelCustomizer : ITestModelCustomizer, new() { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryTaggingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryTaggingQuerySqliteTest.cs index 1d96556d6c0..aa64a56a5fd 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryTaggingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindQueryTaggingQuerySqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindQueryTaggingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindQueryTaggingQueryTestBase>(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSelectQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSelectQuerySqliteTest.cs index 9e6217645e0..e381c47f574 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSelectQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSelectQuerySqliteTest.cs @@ -6,8 +6,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSelectQuerySqliteTest : NorthwindSelectQueryRelationalTestBase> { public NorthwindSelectQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) @@ -33,7 +31,7 @@ public virtual async Task Select_datetime_year_component_composed(bool async) { await AssertQueryScalar( async, - ss => ss.Set().Select(o => o.OrderDate.Value.AddYears(1).Year)); + ss => ss.Set().Select(o => o.OrderDate!.Value.AddYears(1).Year)); AssertSql( """ diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSetOperationsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSetOperationsQuerySqliteTest.cs index 8519804e1ef..e3599799b9f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSetOperationsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSetOperationsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSetOperationsQuerySqliteTest : NorthwindSetOperationsQueryRelationalTestBase< NorthwindQuerySqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqliteTest.cs index 99075c04be2..91307ffe9e7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeNoTrackingQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSplitIncludeNoTrackingQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindSplitIncludeNoTrackingQueryTestBase>(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeQuerySqliteTest.cs index 836a23dcf37..7295fa36dca 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSplitIncludeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSplitIncludeQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindSplitIncludeQueryTestBase>(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSqlQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSqlQuerySqliteTest.cs index 4748094b687..68da743d0aa 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSqlQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindSqlQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindSqlQuerySqliteTest : NorthwindSqlQueryTestBase> { public NorthwindSqlQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindStringIncludeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindStringIncludeQuerySqliteTest.cs index 390e95d70e2..e78187af9a4 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindStringIncludeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindStringIncludeQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindStringIncludeQuerySqliteTest(NorthwindQuerySqliteFixture fixture) : NorthwindStringIncludeQueryTestBase>(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindWhereQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindWhereQuerySqliteTest.cs index 499def9a2dd..d8c32b6fac8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindWhereQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NorthwindWhereQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NorthwindWhereQuerySqliteTest : NorthwindWhereQueryRelationalTestBase> { public NorthwindWhereQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) @@ -52,7 +50,7 @@ .param set @city 'London' """, queryString, ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); - return null; + return null!; } public override async Task Decimal_cast_to_double_works(bool async) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NullKeysSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NullKeysSqliteTest.cs index fabd6ef8820..f4ba4199c68 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NullKeysSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NullKeysSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullKeysSqliteTest(NullKeysSqliteTest.NullKeysSqliteFixture fixture) : NullKeysTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteFixture.cs index bf1bced9ce3..3ea2e3270d1 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullSemanticsQuerySqliteFixture : NullSemanticsQueryFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteTest.cs index db228e96320..c1dc713ccbb 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/NullSemanticsQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class NullSemanticsQuerySqliteTest : NullSemanticsQueryTestBase { // ReSharper disable once UnusedParameter.Local diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsProceduralSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsProceduralSqliteTest.cs index b76b1ecedd7..6ecdb7779de 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsProceduralSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsProceduralSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OperatorsProceduralSqliteTest(NonSharedFixture fixture) : OperatorsProceduralQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsQuerySqliteTest.cs index 28110c46c7c..6add94ea0bc 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OperatorsQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OperatorsQuerySqliteTest(NonSharedFixture fixture) : OperatorsQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteFixture.cs index 41c8841dc87..6fed8bcb791 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteFixture.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OptionalDependentQuerySqliteFixture : OptionalDependentQueryFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteTest.cs index 2462da8f7a5..fd139ec1d53 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OptionalDependentQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OptionalDependentQuerySqliteTest : OptionalDependentQueryTestBase { public OptionalDependentQuerySqliteTest(OptionalDependentQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OwnedEntityQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OwnedEntityQuerySqliteTest.cs index d006eaaa8bc..9fb18d7cbf7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OwnedEntityQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OwnedEntityQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OwnedEntityQuerySqliteTest(NonSharedFixture fixture) : OwnedEntityQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/OwnedQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/OwnedQuerySqliteTest.cs index 2e1fc0c3790..7cf294241e8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/OwnedQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/OwnedQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class OwnedQuerySqliteTest(OwnedQuerySqliteTest.OwnedQuerySqliteFixture fixture) : OwnedQueryRelationalTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/PrimitiveCollectionsQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/PrimitiveCollectionsQuerySqliteTest.cs index e22180fba7e..ce1eea468ed 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/PrimitiveCollectionsQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/PrimitiveCollectionsQuerySqliteTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class PrimitiveCollectionsQuerySqliteTest : PrimitiveCollectionsQueryRelationalTestBase< PrimitiveCollectionsQuerySqliteTest.PrimitiveCollectionsQuerySqlServerFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/QueryFilterFuncletizationSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/QueryFilterFuncletizationSqliteTest.cs index d3b71329eef..7e456a438f4 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/QueryFilterFuncletizationSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/QueryFilterFuncletizationSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryFilterFuncletizationSqliteTest : QueryFilterFuncletizationTestBase< QueryFilterFuncletizationSqliteTest.QueryFilterFuncletizationSqliteFixture> { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteFixture.cs index 4b591243961..3f371baa1fd 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteFixture.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryNoClientEvalSqliteFixture : NorthwindQuerySqliteFixture; diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteTest.cs index 6fc630baf15..5694a9fb0ac 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/QueryNoClientEvalSqliteTest.cs @@ -3,7 +3,5 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class QueryNoClientEvalSqliteTest(QueryNoClientEvalSqliteFixture fixture) : QueryNoClientEvalTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/SharedTypeQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/SharedTypeQuerySqliteTest.cs index 0dd9be49233..26e26849b47 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/SharedTypeQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/SharedTypeQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SharedTypeQuerySqliteTest(NonSharedFixture fixture) : SharedTypeQueryRelationalTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteFixture.cs index c7e79316e61..464e12978cf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteFixture.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SpatialQuerySqliteFixture : SpatialQueryRelationalFixture { protected override ITestStoreFactory TestStoreFactory @@ -33,7 +31,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con base.OnModelCreating(modelBuilder, context); modelBuilder.HasDbFunction( - typeof(GeoExtensions).GetMethod(nameof(GeoExtensions.Distance)), + typeof(GeoExtensions).GetMethod(nameof(GeoExtensions.Distance))!, b => b.HasTranslation(e => new SqlFunctionExpression( "Distance", arguments: e, @@ -47,9 +45,9 @@ private class ReplacementTypeMappingSource( TypeMappingSourceDependencies dependencies, RelationalTypeMappingSourceDependencies relationalDependencies) : SqliteTypeMappingSource(dependencies, relationalDependencies) { - protected override RelationalTypeMapping FindMapping(in RelationalTypeMappingInfo mappingInfo) + protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo) => mappingInfo.ClrType == typeof(GeoPoint) - ? ((RelationalTypeMapping)base.FindMapping(typeof(Point)) + ? ((RelationalTypeMapping)base.FindMapping(typeof(Point))! .WithComposedConverter(new GeoPointConverter())) .WithStoreTypeAndSize("geometry", null) : base.FindMapping(mappingInfo); diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs index 77d76e13f1e..51cdcbc7f1f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/SpatialQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - [ConditionalClass(typeof(SqliteTestEnvironment), nameof(SqliteTestEnvironment.SpatialiteAvailable))] public class SpatialQuerySqliteTest : SpatialQueryRelationalTestBase { diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/SqlQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/SqlQuerySqliteTest.cs index 203e0670497..dbc98690f13 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/SqlQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/SqlQuerySqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class SqlQuerySqliteTest : SqlQueryTestBase> { public SqlQuerySqliteTest(NorthwindQuerySqliteFixture fixture, ITestOutputHelper testOutputHelper) diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/ToSqlQuerySqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/ToSqlQuerySqliteTest.cs index 9584063488a..bd4665ca6f5 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/ToSqlQuerySqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/ToSqlQuerySqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class ToSqlQuerySqliteTest(NonSharedFixture fixture) : ToSqlQueryTestBase(fixture) { protected override ITestStoreFactory NonSharedTestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/Query/WarningsSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Query/WarningsSqliteTest.cs index 78700c3f665..96ce1e0bb99 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Query/WarningsSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Query/WarningsSqliteTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore.Query; -#nullable disable - public class WarningsSqliteTest(QueryNoClientEvalSqliteFixture fixture) : WarningsTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/QueryExpressionInterceptionSqliteTestBase.cs b/test/EFCore.Sqlite.FunctionalTests/QueryExpressionInterceptionSqliteTestBase.cs index dd91b2f023b..85808917f12 100644 --- a/test/EFCore.Sqlite.FunctionalTests/QueryExpressionInterceptionSqliteTestBase.cs +++ b/test/EFCore.Sqlite.FunctionalTests/QueryExpressionInterceptionSqliteTestBase.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class QueryExpressionInterceptionSqliteTestBase( QueryExpressionInterceptionSqliteTestBase.InterceptionSqliteFixtureBase fixture) : QueryExpressionInterceptionTestBase(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/SaveChangesInterceptionSqliteTestBase.cs b/test/EFCore.Sqlite.FunctionalTests/SaveChangesInterceptionSqliteTestBase.cs index 23caea566db..e31a47889c2 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SaveChangesInterceptionSqliteTestBase.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SaveChangesInterceptionSqliteTestBase.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class SaveChangesInterceptionSqliteTestBase(SaveChangesInterceptionSqliteTestBase.InterceptionSqliteFixtureBase fixture) : SaveChangesInterceptionTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/Scaffolding/SqliteDatabaseModelFactoryTest.cs b/test/EFCore.Sqlite.FunctionalTests/Scaffolding/SqliteDatabaseModelFactoryTest.cs index 66b327c2344..e85a80e275f 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Scaffolding/SqliteDatabaseModelFactoryTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Scaffolding/SqliteDatabaseModelFactoryTest.cs @@ -12,8 +12,6 @@ // ReSharper disable InconsistentNaming namespace Microsoft.EntityFrameworkCore.Scaffolding; -#nullable disable - public class SqliteDatabaseModelFactoryTest : IClassFixture { protected SqliteDatabaseModelFixture Fixture { get; } @@ -186,9 +184,9 @@ public void Create_primary_key() [], dbModel => { - var pk = dbModel.Tables.Single().PrimaryKey; + var pk = Assert.IsType(dbModel.Tables.Single().PrimaryKey); - Assert.Equal("Place", pk.Table.Name); + Assert.Equal("Place", pk.Table!.Name); Assert.Equal( ["Id"], pk.Columns.Select(ic => ic.Name).ToList()); }, @@ -238,7 +236,7 @@ IndexProperty int Assert.Equal(2, table.Indexes.Count); Assert.All( - table.Indexes, c => Assert.Equal("IndexTable", c.Table.Name)); + table.Indexes, c => Assert.Equal("IndexTable", c.Table!.Name)); Assert.Single(table.Indexes, c => c.Name == "IX_NAME"); Assert.Single(table.Indexes, c => c.Name == "IX_INDEX"); @@ -412,7 +410,7 @@ RandomProperty randomType InlineData("MULTIPOLYGONZM", null), InlineData("POINT", null), InlineData("POINTZ", null), InlineData("POINTM", null), InlineData("POINTZM", null), InlineData("POLYGON", null), InlineData("POLYGONZ", null), InlineData("POLYGONM", null), InlineData("POLYGONZM", null)] - public void Column_ClrType_is_set_when_no_data(string storeType, Type expected) + public void Column_ClrType_is_set_when_no_data(string storeType, Type? expected) => Test( $@" CREATE TABLE ClrType ( @@ -424,7 +422,7 @@ CREATE TABLE ClrType ( { var table = Assert.Single(model.Tables); var column = Assert.Single(table.Columns); - Assert.Equal(expected, (Type)column[ScaffoldingAnnotationNames.ClrType]); + Assert.Equal(expected, (Type?)column[ScaffoldingAnnotationNames.ClrType]); }, "DROP TABLE ClrType"); @@ -444,7 +442,7 @@ CREATE TABLE ClrType ( "POINT", "x'00010000000000000000000000000000000000000000000000000000000000000000000000007C0100000000000000000000000000000000000000FE'", null)] - public void Column_ClrType_is_set_when_data(string storeType, string value, Type expected) + public void Column_ClrType_is_set_when_data(string storeType, string value, Type? expected) => Test( $@" CREATE TABLE IF NOT EXISTS ClrTypeWithData ( @@ -458,7 +456,7 @@ CREATE TABLE IF NOT EXISTS ClrTypeWithData ( { var table = Assert.Single(model.Tables); var column = Assert.Single(table.Columns); - Assert.Equal(expected, (Type)column[ScaffoldingAnnotationNames.ClrType]); + Assert.Equal(expected, (Type?)column[ScaffoldingAnnotationNames.ClrType]); }, "DROP TABLE ClrTypeWithData"); @@ -473,7 +471,7 @@ CREATE TABLE IF NOT EXISTS ClrTypeWithData ( InlineData("TIME", "'A'", typeof(string)), InlineData("TIMEONLY", "'A'", typeof(string)), InlineData("TIMEONLY", "'24:00:00'", typeof(TimeSpan)), InlineData("BLOB", "1", null), InlineData("GEOMETRY", "1", null), InlineData("POINT", "1", null)] - public void Column_ClrType_is_set_when_insane(string storeType, string value, Type expected) + public void Column_ClrType_is_set_when_insane(string storeType, string value, Type? expected) => Test( $@" CREATE TABLE IF NOT EXISTS ClrTypeWithData ( @@ -487,7 +485,7 @@ CREATE TABLE IF NOT EXISTS ClrTypeWithData ( { var table = Assert.Single(model.Tables); var column = Assert.Single(table.Columns); - Assert.Equal(expected, (Type)column[ScaffoldingAnnotationNames.ClrType]); + Assert.Equal(expected, (Type?)column[ScaffoldingAnnotationNames.ClrType]); }, "DROP TABLE ClrTypeWithData"); @@ -706,15 +704,15 @@ B float DEFAULT (0.0), var column = columns.Single(c => c.Name == "A"); Assert.Equal("-1.1111", column.DefaultValueSql); - Assert.Equal(-1.1111, (double)column.DefaultValue, 3); + Assert.Equal(-1.1111, (double)column.DefaultValue!, 3); column = columns.Single(c => c.Name == "B"); Assert.Equal("0.0", column.DefaultValueSql); - Assert.Equal(0, (double)column.DefaultValue, 3); + Assert.Equal(0, (double)column.DefaultValue!, 3); column = columns.Single(c => c.Name == "C"); Assert.Equal("1.1000000000000001e+000", column.DefaultValueSql); - Assert.Equal(1.1000000000000001e+000, (double)column.DefaultValue, 3); + Assert.Equal(1.1000000000000001e+000, (double)column.DefaultValue!, 3); }, "DROP TABLE MyTable;"); @@ -737,15 +735,15 @@ B single DEFAULT (0.0), var column = columns.Single(c => c.Name == "A"); Assert.Equal("-1.1111", column.DefaultValueSql); - Assert.Equal((float)-1.1111, (float)column.DefaultValue, 0.01); + Assert.Equal((float)-1.1111, (float)column.DefaultValue!, 0.01); column = columns.Single(c => c.Name == "B"); Assert.Equal("0.0", column.DefaultValueSql); - Assert.Equal(0, (float)column.DefaultValue, 0.01); + Assert.Equal(0, (float)column.DefaultValue!, 0.01); column = columns.Single(c => c.Name == "C"); Assert.Equal("1.1000000000000001e+000", column.DefaultValueSql); - Assert.Equal((float)1.1000000000000001e+000, (float)column.DefaultValue, 0.01); + Assert.Equal((float)1.1000000000000001e+000, (float)column.DefaultValue!, 0.01); }, "DROP TABLE MyTable;"); @@ -1116,9 +1114,9 @@ PRIMARY KEY ( Id2, Id1 ) [], dbModel => { - var pk = dbModel.Tables.Single().PrimaryKey; + var pk = Assert.IsType(dbModel.Tables.Single().PrimaryKey); - Assert.Equal("CompositePrimaryKey", pk.Table.Name); + Assert.Equal("CompositePrimaryKey", pk.Table!.Name); Assert.Equal( ["Id2", "Id1"], pk.Columns.Select(ic => ic.Name).ToList()); }, @@ -1135,9 +1133,9 @@ Id integer PRIMARY KEY [], dbModel => { - var pk = dbModel.Tables.Single().PrimaryKey; + var pk = Assert.IsType(dbModel.Tables.Single().PrimaryKey); - Assert.Equal("RowidPrimaryKey", pk.Table.Name); + Assert.Equal("RowidPrimaryKey", pk.Table!.Name); Assert.Equal( ["Id"], pk.Columns.Select(ic => ic.Name).ToList()); }, @@ -1155,9 +1153,9 @@ CONSTRAINT PK PRIMARY KEY (Id) [], dbModel => { - var pk = dbModel.Tables.Single().PrimaryKey; + var pk = Assert.IsType(dbModel.Tables.Single().PrimaryKey); - Assert.Equal("PrimaryKeyName", pk.Table.Name); + Assert.Equal("PrimaryKeyName", pk.Table!.Name); Assert.Equal("PK", pk.Name); Assert.Equal( ["Id"], pk.Columns.Select(ic => ic.Name).ToList()); @@ -1233,7 +1231,7 @@ Id2 text var index = Assert.Single(dbModel.Tables.Single().Indexes); // ReSharper disable once PossibleNullReferenceException - Assert.Equal("CompositeIndex", index.Table.Name); + Assert.Equal("CompositeIndex", index.Table!.Name); Assert.Equal("IX_COMPOSITE", index.Name); Assert.Equal( ["Id2", "Id1"], index.Columns.Select(ic => ic.Name).ToList()); @@ -1257,7 +1255,7 @@ Id2 text var index = Assert.Single(dbModel.Tables.Single().Indexes); // ReSharper disable once PossibleNullReferenceException - Assert.Equal("UniqueIndex", index.Table.Name); + Assert.Equal("UniqueIndex", index.Table!.Name); Assert.Equal("IX_UNIQUE", index.Name); Assert.True(index.IsUnique); Assert.Equal( diff --git a/test/EFCore.Sqlite.FunctionalTests/SeedingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/SeedingSqliteTest.cs index cf3624fac14..fa49ce44d15 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SeedingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SeedingSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SeedingSqliteTest : SeedingTestBase { protected override TestStore TestStore diff --git a/test/EFCore.Sqlite.FunctionalTests/SerializationSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/SerializationSqliteTest.cs index d18bbced58d..3fd15c5e3b9 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SerializationSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SerializationSqliteTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SerializationSqliteTest(F1SqliteFixture fixture) : SerializationTestBase(fixture); diff --git a/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteFixture.cs index cb6212f8e0a..9add894d7ba 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SpatialSqliteFixture : SpatialFixtureBase { protected override ITestStoreFactory TestStoreFactory diff --git a/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteTest.cs index acdc855df68..f3aeeecb306 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SpatialSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - [ConditionalClass(typeof(SqliteTestEnvironment), nameof(SqliteTestEnvironment.SpatialiteAvailable))] public class SpatialSqliteTest(SpatialSqliteFixture fixture) : SpatialTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteApiConsistencyTest.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteApiConsistencyTest.cs index 31825860234..38574e89a06 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteApiConsistencyTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteApiConsistencyTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqliteApiConsistencyTest(SqliteApiConsistencyTest.SqliteApiConsistencyFixture fixture) : ApiConsistencyTestBase(fixture) { @@ -46,7 +44,7 @@ public override typeof(SqlitePropertyExtensions), typeof(SqlitePropertyExtensions), typeof(SqlitePropertyBuilderExtensions), - null + null! ) }, { @@ -55,7 +53,7 @@ public override typeof(SqliteEntityTypeExtensions), typeof(SqliteEntityTypeExtensions), typeof(SqliteEntityTypeBuilderExtensions), - null + null! ) } }; diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteComplianceTest.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteComplianceTest.cs index 0b583519ff9..bd5a6977097 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteComplianceTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteComplianceTest.cs @@ -8,8 +8,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqliteComplianceTest : RelationalComplianceTestBase { protected override ICollection IgnoredTestBases { get; } = diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseCreatorTest.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseCreatorTest.cs index f3c351a9c6b..597c855f7fa 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseCreatorTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseCreatorTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqliteDatabaseCreatorTest { [Theory, InlineData(false, false), InlineData(true, false), InlineData(false, true), InlineData(true, true)] diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseFacadeTestExtensions.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseFacadeTestExtensions.cs index 6a605ef67b5..201b62cce94 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseFacadeTestExtensions.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteDatabaseFacadeTestExtensions.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public static class SqliteDatabaseFacadeTestExtensions { public static void EnsureClean(this DatabaseFacade databaseFacade, bool createTables = true) diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteServiceCollectionExtensionsTest.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteServiceCollectionExtensionsTest.cs index 28139125bcf..01e27980ddf 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteServiceCollectionExtensionsTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteServiceCollectionExtensionsTest.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqliteServiceCollectionExtensionsTest() : RelationalServiceCollectionExtensionsTestBase(SqliteTestHelpers.Instance); diff --git a/test/EFCore.Sqlite.FunctionalTests/SqliteValueGenerationScenariosTest.cs b/test/EFCore.Sqlite.FunctionalTests/SqliteValueGenerationScenariosTest.cs index a4242927cba..e918921d865 100644 --- a/test/EFCore.Sqlite.FunctionalTests/SqliteValueGenerationScenariosTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/SqliteValueGenerationScenariosTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class SqliteValueGenerationScenariosTest { [Fact] @@ -61,7 +59,7 @@ public void Insert_uint_to_Identity_column_using_value_converter() public class BlogContextUIntToIdentityUsingValueConverter(string databaseName) : ContextBase(databaseName) { - public DbSet UnsignedBlogs { get; set; } + public DbSet UnsignedBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -77,7 +75,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithUIntKey { public uint Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } [Fact] @@ -105,7 +103,7 @@ public void Insert_int_enum_to_Identity_column() public class BlogContextIntEnumToIdentity(string databaseName) : ContextBase(databaseName) { - public DbSet EnumBlogs { get; set; } + public DbSet EnumBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -121,7 +119,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithIntEnumKey { public IntKey Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } public enum IntKey; @@ -151,7 +149,7 @@ public void Insert_ushort_enum_to_Identity_column() public class BlogContextUShortEnumToIdentity(string databaseName) : ContextBase(databaseName) { - public DbSet EnumBlogs { get; set; } + public DbSet EnumBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -167,7 +165,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithUShortEnumKey { public UShortKey Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; } public enum UShortKey : ushort; @@ -199,7 +197,7 @@ public void Insert_string_to_Identity_column_using_value_converter() public class BlogContextStringToIdentityUsingValueConverter(string databaseName) : ContextBase(databaseName) { - public DbSet StringyBlogs { get; set; } + public DbSet StringyBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -221,8 +219,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) public class BlogWithStringKey { - public string Id { get; set; } - public string Name { get; set; } + public string Id { get; set; } = null!; + public string Name { get; set; } = null!; } [Fact] @@ -571,9 +569,9 @@ public void Insert_explicit_value_throws_when_readonly_before_save() public class Blog { public int Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime CreatedOn { get; set; } - public NeedsConverter NeedsConverter { get; set; } + public NeedsConverter NeedsConverter { get; set; } = null!; public int? OtherId { get; set; } } @@ -581,7 +579,7 @@ public class NeedsConverter(int value) { public int Value { get; } = value; - public override bool Equals(object obj) + public override bool Equals(object? obj) => throw new InvalidOperationException(); public override int GetHashCode() @@ -591,39 +589,39 @@ public override int GetHashCode() public class NullableKeyBlog { public int? Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public DateTime CreatedOn { get; set; } } public class FullNameBlog { public int Id { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - public string FullName { get; set; } + public string FirstName { get; set; } = null!; + public string LastName { get; set; } = null!; + public string FullName { get; set; } = null!; } public class GuidBlog { public Guid Id { get; set; } - public string Name { get; set; } + public string Name { get; set; } = null!; public Guid NotId { get; set; } } public class ConcurrentBlog { public int Id { get; set; } - public string Name { get; set; } - public byte[] Timestamp { get; set; } + public string Name { get; set; } = null!; + public byte[] Timestamp { get; set; } = null!; } public abstract class ContextBase(string databaseName) : DbContext { - public DbSet Blogs { get; set; } - public DbSet NullableKeyBlogs { get; set; } - public DbSet FullNameBlogs { get; set; } - public DbSet GuidBlogs { get; set; } - public DbSet ConcurrentBlogs { get; set; } + public DbSet Blogs { get; set; } = null!; + public DbSet NullableKeyBlogs { get; set; } = null!; + public DbSet FullNameBlogs { get; set; } = null!; + public DbSet GuidBlogs { get; set; } = null!; + public DbSet ConcurrentBlogs { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.Entity() diff --git a/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedFixupSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedFixupSqliteTest.cs index 92fc29a0983..b000ae908d3 100644 --- a/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedFixupSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedFixupSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class StoreGeneratedFixupSqliteTest(StoreGeneratedFixupSqliteTest.StoreGeneratedFixupSqliteFixture fixture) : StoreGeneratedFixupRelationalTestBase< StoreGeneratedFixupSqliteTest.StoreGeneratedFixupSqliteFixture>(fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedSqliteTest.cs index ad5bc897d1c..38803e05a0b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/StoreGeneratedSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class StoreGeneratedSqliteTest(StoreGeneratedSqliteTest.StoreGeneratedSqliteFixture fixture) : StoreGeneratedTestBase(fixture) { @@ -132,6 +130,6 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con private class Zach { - public byte[] Id { get; set; } + public byte[] Id { get; set; } = null!; } } diff --git a/test/EFCore.Sqlite.FunctionalTests/TPTTableSplittingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/TPTTableSplittingSqliteTest.cs index 1b818757ded..b82fbb90786 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TPTTableSplittingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TPTTableSplittingSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TPTTableSplittingSqliteTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : TPTTableSplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/TableSplittingSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/TableSplittingSqliteTest.cs index 8fc1ae5b6f7..ff5e593326b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TableSplittingSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TableSplittingSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TableSplittingSqliteTest(NonSharedFixture fixture, ITestOutputHelper testOutputHelper) : TableSplittingTestBase(fixture, testOutputHelper) { diff --git a/test/EFCore.Sqlite.FunctionalTests/TestModels/Northwind/NorthwindSqliteContext.cs b/test/EFCore.Sqlite.FunctionalTests/TestModels/Northwind/NorthwindSqliteContext.cs index b5511de64f1..9fcda158c52 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TestModels/Northwind/NorthwindSqliteContext.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TestModels/Northwind/NorthwindSqliteContext.cs @@ -3,6 +3,4 @@ namespace Microsoft.EntityFrameworkCore.TestModels.Northwind; -#nullable disable - public class NorthwindSqliteContext(DbContextOptions options) : NorthwindRelationalContext(options); diff --git a/test/EFCore.Sqlite.FunctionalTests/TransactionInterceptionSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/TransactionInterceptionSqliteTest.cs index 7396072f8b7..6426c65e8e7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TransactionInterceptionSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TransactionInterceptionSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public abstract class TransactionInterceptionSqliteTestBase(TransactionInterceptionSqliteTestBase.InterceptionSqliteFixtureBase fixture) : TransactionInterceptionTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/TransactionSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/TransactionSqliteTest.cs index 33b2d68020d..589a7fa2132 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TransactionSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TransactionSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TransactionSqliteTest(TransactionSqliteTest.TransactionSqliteFixture fixture) : TransactionTestBase(fixture) { diff --git a/test/EFCore.Sqlite.FunctionalTests/TwoDatabasesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/TwoDatabasesSqliteTest.cs index 9aabe4fddb8..61df7be55a8 100644 --- a/test/EFCore.Sqlite.FunctionalTests/TwoDatabasesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/TwoDatabasesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class TwoDatabasesSqliteTest(TwoDatabasesSqliteTest.TwoDatabasesFixture fixture) : TwoDatabasesTestBase(fixture), IClassFixture { @@ -17,7 +15,7 @@ protected override DbContextOptionsBuilder CreateTestOptions( bool withNullConnectionString = false) => withConnectionString ? withNullConnectionString - ? optionsBuilder.UseSqlite((string)null) + ? optionsBuilder.UseSqlite((string?)null) : optionsBuilder.UseSqlite(DummyConnectionString) : optionsBuilder.UseSqlite(); diff --git a/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteFixture.cs b/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteFixture.cs index 84389edc8ee..4ca49106d10 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteFixture.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteFixture.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class JsonUpdateSqliteFixture : JsonUpdateFixtureBase { protected override ITestStoreFactory TestStoreFactory @@ -31,6 +29,8 @@ protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext con b.Ignore(e => e.TestNullableInt32CollectionCollection); b.Ignore(e => e.TestNullableEnumCollectionCollection); + b.Navigation(e => e.Reference).IsRequired(false); + b.OwnsOne( e => e.Reference, b => { diff --git a/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteTest.cs index fe7bcfe1e58..355524192e6 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Update/JsonUpdateSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class JsonUpdateSqliteTest : JsonUpdateTestBase { public JsonUpdateSqliteTest(JsonUpdateSqliteFixture fixture) diff --git a/test/EFCore.Sqlite.FunctionalTests/Update/NonSharedModelUpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Update/NonSharedModelUpdatesSqliteTest.cs index c81f36eefd7..e5567e96756 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Update/NonSharedModelUpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Update/NonSharedModelUpdatesSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class NonSharedModelUpdatesSqliteTest(NonSharedFixture fixture) : NonSharedModelUpdatesTestBase(fixture) { public override async Task Principal_and_dependent_roundtrips_with_cycle_breaking(bool async) diff --git a/test/EFCore.Sqlite.FunctionalTests/Update/SqliteUpdateSqlGeneratorTest.cs b/test/EFCore.Sqlite.FunctionalTests/Update/SqliteUpdateSqlGeneratorTest.cs index f45fa975766..495c87a8b7c 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Update/SqliteUpdateSqlGeneratorTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Update/SqliteUpdateSqlGeneratorTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class SqliteUpdateSqlGeneratorTest : UpdateSqlGeneratorTestBase { protected override IUpdateSqlGenerator CreateSqlGenerator() @@ -25,7 +23,7 @@ protected override string RowsAffected => "changes()"; protected override string Schema - => null; + => null!; protected override string GetIdentityWhereCondition(string columnName) => OpenDelimiter + "rowid" + CloseDelimiter + " = last_insert_rowid()"; diff --git a/test/EFCore.Sqlite.FunctionalTests/Update/UpdatesSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Update/UpdatesSqliteTest.cs index 55553514640..93eb2f6160b 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Update/UpdatesSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Update/UpdatesSqliteTest.cs @@ -5,8 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update; -#nullable disable - public class UpdatesSqliteTest(UpdatesSqliteTest.UpdatesSqliteFixture fixture) : UpdatesRelationalTestBase(fixture) { @@ -20,7 +18,7 @@ public override void Identifiers_are_generated_correctly() var entityType = context.Model.FindEntityType( typeof( LoginEntityTypeWithAnExtremelyLongAndOverlyConvolutedNameThatIsUsedToVerifyThatTheStoreIdentifierGenerationLengthLimitIsWorkingCorrectly - )); + ))!; Assert.Equal( "LoginEntityTypeWithAnExtremelyLongAndOverlyConvolutedNameThatIsUsedToVerifyThatTheStoreIdentifierGenerationLengthLimitIsWorkingCorrectly", entityType.GetTableName()); diff --git a/test/EFCore.Sqlite.FunctionalTests/WithConstructorsSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/WithConstructorsSqliteTest.cs index 729174e71e3..bcb79b79d77 100644 --- a/test/EFCore.Sqlite.FunctionalTests/WithConstructorsSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/WithConstructorsSqliteTest.cs @@ -3,8 +3,6 @@ namespace Microsoft.EntityFrameworkCore; -#nullable disable - public class WithConstructorsSqliteTest(WithConstructorsSqliteTest.WithConstructorsSqliteFixture fixture) : WithConstructorsTestBase(fixture) { diff --git a/test/EFCore.Sqlite.Tests/Storage/SqliteTypeMappingTest.cs b/test/EFCore.Sqlite.Tests/Storage/SqliteTypeMappingTest.cs index 1e1364a8d82..8780f0a3575 100644 --- a/test/EFCore.Sqlite.Tests/Storage/SqliteTypeMappingTest.cs +++ b/test/EFCore.Sqlite.Tests/Storage/SqliteTypeMappingTest.cs @@ -84,8 +84,8 @@ public void It_maps_strings_to_not_null_types(string typeName, Type type) private static IRelationalTypeMappingSource CreateTypeMapper() => TestServiceFactory.Instance.Create(); - public static RelationalTypeMapping? GetMapping(Type type) - => CreateTypeMapper().FindMapping(type); + public static RelationalTypeMapping GetMapping(Type type) + => Assert.IsAssignableFrom(CreateTypeMapper().FindMapping(type)); public override void DateTimeOffset_literal_generated_correctly() => Test_GenerateSqlLiteral_helper(