Start running EF Core API consistency checks and fix any issues

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • None
    • None
    • Dotnet Drivers
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      These are tests (for historical reasons) that do static analysis for well-known EF Core API patterns, mostly around metadata builders. Current reported issues are:

      • – Non-generic fluent returns that aren't hidden –
      • PropertyBuilder MongoPropertyBuilderExtensions.HasDateTimeKind(PropertyBuilder, DateTimeKind)
      • DbContextOptionsBuilder MongoDbContextOptionsExtensions.UseMongoDB(DbContextOptionsBuilder, MongoOptionsExtension, Action`1)
      • – Errors: –
      • MongoPropertyBuilderExtensions expected to have a CanSetDateTimeKind or CanHaveDateTimeKind method
      • MongoIndexBuilderExtensions.CanSetCreateIndexOptions(IConventionIndexBuilder, CreateIndexOptions, Boolean) expected to have the first parameter of type CreateIndexOptions<BsonDocument>
      • – Errors: –
      • MongoPropertyExtensions.SetBsonRepresentation(IConventionProperty, Nullable`1, Nullable`1, Nullable`1, Boolean) expected to have an IConvention or BsonType? return type
      • MongoPropertyExtensions.SetDateTimeKind(IConventionProperty, DateTimeKind) expected to have an IConvention or DateTimeKind return type
      • MongoPropertyExtensions.SetEncryptionDataKeyId(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionType(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionRangeMax(IConventionProperty, Object) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionRangeMin(IConventionProperty, Object) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionSparsity(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionPrecision(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionTrimFactor(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • MongoPropertyExtensions.SetQueryableEncryptionContention(IConventionProperty, Nullable`1) expected to have a 'bool fromDataAnnotation = false' parameter
      • – Errors: –
      • MongoPropertyExtensions expected to have a GetDateTimeKindConfigurationSource() method
      • – Mismatches: –
      • No IConvention equivalent of MongoEntityTypeExtensions.SetCollectionName(IMutableEntityType, String)
      • – Errors: –
      • MongoEntityTypeExtensions expected to have a GetCollectionNameConfigurationSource() method
      • – Errors: –
        MongoPropertyExtensions.SetBsonRepresentation(IMutableProperty, Nullable`1, Nullable`1, Nullable`1) expected to have a void return type
      • – Missing virtual APIs –
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_ConnectionString
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_ClientSettings
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_DatabaseName
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_KeyVaultNamespace
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_KmsProviders
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_CryptProvider
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_CryptProviderPath
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_CryptExtraOptions
        Microsoft.EntityFrameworkCore.MongoOptionsExtension.get_MongoClient
        MongoDB.EntityFrameworkCore.CollectionAttribute.get_Name
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.get_Query
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.set_Query
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.get_Cardinality
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.set_Cardinality
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.get_Provider
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.set_Provider
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.get_CollectionNamespace
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.set_CollectionNamespace
        MongoDB.EntityFrameworkCore.Query.MongoExecutableQuery.Deconstruct
        MongoDB.EntityFrameworkCore.Query.Factories.MongoQueryContextFactory.get_Client
        MongoDB.EntityFrameworkCore.Metadata.BsonRepresentationConfiguration.get_BsonType
        MongoDB.EntityFrameworkCore.Metadata.BsonRepresentationConfiguration.get_AllowOverflow
        MongoDB.EntityFrameworkCore.Metadata.BsonRepresentationConfiguration.get_AllowTruncation
        MongoDB.EntityFrameworkCore.Metadata.BsonRepresentationConfiguration.ToDictionary
        MongoDB.EntityFrameworkCore.Metadata.Conventions.DateTimeKindConvention.get_DateTimeKind
        MongoDB.EntityFrameworkCore.Infrastructure.QueryableEncryptionEqualityBuilder`1.WithContention
        MongoDB.EntityFrameworkCore.Infrastructure.QueryableEncryptionRangeBuilder`1.WithSparsity
        MongoDB.EntityFrameworkCore.Infrastructure.QueryableEncryptionRangeBuilder`1.WithPrecision
        MongoDB.EntityFrameworkCore.Infrastructure.QueryableEncryptionRangeBuilder`1.WithTrimFactor
        MongoDB.EntityFrameworkCore.Infrastructure.QueryableEncryptionRangeBuilder`1.WithContention
        MongoDB.EntityFrameworkCore.Diagnostics.MongoBulkWriteEventData.get_Elapsed
        MongoDB.EntityFrameworkCore.Diagnostics.MongoBulkWriteEventData.get_CollectionNamespace
        MongoDB.EntityFrameworkCore.Diagnostics.MongoBulkWriteEventData.get_InsertCount
        MongoDB.EntityFrameworkCore.Diagnostics.MongoBulkWriteEventData.get_DeleteCount
        MongoDB.EntityFrameworkCore.Diagnostics.MongoBulkWriteEventData.get_ModifyCount
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionEndEventData.get_Duration
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionEndEventData.set_Duration
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionErrorEventData.get_Action
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionEventData.get_Transaction
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionEventData.get_IsAsync
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionEventData.get_StartTime
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionStartingEventData.get_Session
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionStartingEventData.get_TransactionOptions
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionStartingEventData.get_TransactionId
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionStartingEventData.get_IsAsync
        MongoDB.EntityFrameworkCore.Diagnostics.MongoTransactionStartingEventData.get_StartTime

            Assignee:
            Arthur Vickers
            Reporter:
            Arthur Vickers
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: