Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7.0 API Reviews #27588

Closed
53 tasks done
bricelam opened this issue Mar 7, 2022 · 3 comments
Closed
53 tasks done

7.0 API Reviews #27588

bricelam opened this issue Mar 7, 2022 · 3 comments
Labels
area-global closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. type-enhancement
Milestone

Comments

@bricelam
Copy link
Contributor

bricelam commented Mar 7, 2022

As a team, we periodically review any changes made to the public API of the product. This issue keeps track of any follow-up items that come out of those reviews for the 7.0 release.

March 7

Done
  • @roji Add default implementation for ISaveChangesInterceptor.SaveChangesCanceled (and Async) (done in #27635)
  • @roji See if HasIndex().IsDescending() (no args) can work for single-column indexes (done in #28489).
  • @maumar Is OwnedNavigationBuilder.Property that takes setTypeConfigurationSource still needed? If not, is it generally useful and worth keeping?
  • @maumar Should INavigationExpansionExtensibilityHelper.ValidateQueryRootCreation provide a default implementation?
  • @maumar Will mutating the annotations on TableExpressionBase cause problems with caching, etc.?
  • @roji IBatchExecutor and ICommandBatchPreparer should use a nominal type instead of ValueTuple.
    • Proposing to integrate the "are more batches coming" into ModificationCommandBatch instead.
  • @roji Follow up on ReaderModificationCommandBatch.IsCachedCommandTextEmpty and UpdateCachedCommandText if they don't get removed. (they got removed)
  • @AndriySvyryd Use IEnumerable instead of ICollection in SqlServerRetryingExecutionStrategy and SqlServerDbContextOptionsBuilder.EnableRetryOnFailure.

March 25

Done
  • @AndriySvyryd Was there a binary breaking change made to record?
  • @ajcvickers Remove params, Obsolete, and add a new ctor to IndexAttribute
  • @bricelam Make ITextTemplating and ITextTemplatingCallback pubternal (or remove if they're not actually needed)
  • @AndriySvyryd Rearrange parameters of RelationalModelValidator.ValidateMappingStrategy to put the metadata object first
  • @roji Should TableBuilder.HasTrigger move to SQL Server for now? Was moved to Core instead.
  • @roji Change the return type of ReaderModificationCommandBatch.ParameterValues to IDictionary<,>
    • The problem here is that ParameterValues needs to be passed to RawSqlCommand (code), which currently accepts IReadOnlyDictionary; and IDictionary doesn't extend IReadOnlyDictionary (discussion. We could have a private backing field that's Dictionary, but subclasses who wish to override Complete would bump against the same problem.
    • Design decision: leave this as a Dictionary.
  • @roji Can you explain the additionalReadValues parameter of UpdateSqlGenerator.AppendDeleteCommand in a design meeting?

May 13

Done
  • @smitpatel Revert breaking change to GroupByShaperExpression ctor
  • @roji Rename RelationalAnnotationNames.GetReaderFieldValue to FieldValueGetter
  • @smitpatel Move EnumerableExpression out of the SqlExpressions namespace
  • @smitpatel Should EnumerableExpression be immutable?
  • @roji Is there a better place for ReaderModificationCommandBatch.MaxBatchSize since it has the same value for every batch?
  • @roji Rename SelectingUpdateSqlGenerator to UpdateAndSelectSqlGenerator

June 24

Done
  • @ajcvickers Use entity instead of instance in IIdentityResolutionInterceptor and IMaterializationInterceptor
  • @ajcvickers Use parameter objects in IIdentityResolutionInterceptor and IInstantiationBindingInterceptor
  • @ajcvickers Remove entityInstanceName parameter in IInstantiationBindingInterceptor.ModifyBinding
  • @ajcvickers Rename SkippingIdentityResolutionInterceptor to IgnoringIdentityResolutionInterceptor
  • @ajcvickers Why is IEntityType.ServiceOnlyConstructorBinding new?
    • There was a refactoring to InstanceFactory code from EntityType to a common location that could be called with the materializer. This required that ServiceOnlyConstructorBinding be available outside of EntityType.

July 11

Done
  • @ajcvickers Remove IQueryExpressionInterceptor.CompilingQuery and CompiledQuery and re-purpose issue for intercepting the SQL tree
  • @ajcvickers Rename IQueryExpressionInterceptor.ProcessingQuery to QueryCompilationStarting
  • @bricelam Rename IndentedStringBuilder.CurrentIndent to IndentCount and return int
  • @bricelam Document CSharpSnapshotGenerator (at least new members) as internal
  • @AndriySvyryd Rename RelationalEventId.KeyUnmappedProperties to something better
  • @AndriySvyryd Add Is prefix to IReadOnlyRelationalPropertyOverrides.ColumnNameOverridden

August 8

Done
  • @smitpatel Rename ExpressionExtensions.BuildEqualsExpression to CreateEqualsExpression
  • @AndriySvyryd Rename ConventionsBuilder to ConventionSetBuilder
  • @maumar Rename JsonColumnName to ContainerColumnName and JsonColumnTypeMapping to ContainerColumnTypeMapping in RelationalEntityTypeExtensions and RelationalAnnotationNames
  • @maumar Move RelationalNavigationBuilderExtensions to the entity type builder instead
  • @smitpatel Update CommandSource.CommandSource value to match obleted BulkUpdate value (of 8)
  • @maumar Change RelationalModelValidator.ValidateJsonEntityProperties to protected
  • @AndriySvyryd Remove are prefix from parameter name inside IConventionStoredProcedure.SetAreTransactionsSuppressed

August 17

  • @AndriySvyryd Reorder EntityTypeBuilder.HasTrigger parameters; put entityType first.
  • @smitpatel Obsolete IDictionary overloads in RuntimeModelConvention; replace with Dictionary
  • @bricelam Should we add ScaffoldingModelExtensions.IsHandledByDataAnnotations for IKey?
  • @bricelam Rename ScaffoldingModelExtensions.HasDataAnnotation and FluentApiCodeFragment.HasDataAnnotation to IsHandledByDataAnnotations
  • @bricelam Don't pluralize ScaffoldingModelExtensions.IsHandledByConventions
  • @smitpatel Rename SetPropertyStatements to SetPropertyCalls (parameters too)
  • @AndriySvyryd Rename RelationalTriggerBuilderExtensions.HasName to HasDatabaseName (in RelationalTriggerExtensions too)
  • @AndriySvyryd Remove BlankTriggerAddingConvention. Document how to do it in breaking changes. We may add sugar later based on feedback.
  • @maumar Rename JsonQueryExpression.JsonPath to just Path (JsonScalarExpression too)
  • @maumar Make JsonQueryExpression.MakeNullable overload that takes a dictonary internal
  • @smitpatel Make parameterless ctor on SetPropertyStatements private
  • @maumar Remove parameter 'nullable' on JsonScalarExpression.Update (replace with a MakeNullable method)
  • @smitpatel Rename SetColumnValue to ColumnValueSetter (UpdateExpression property too)
  • @roji Make DatabaseTable.Triggers return a class so we can add additional metadata in the future. #28801
@bricelam bricelam added this to the 7.0.0 milestone Mar 7, 2022
@AndriySvyryd AndriySvyryd removed their assignment Mar 17, 2022
@AndriySvyryd AndriySvyryd removed their assignment Apr 29, 2022
AndriySvyryd added a commit that referenced this issue May 3, 2022
Use client value comparer as provider value comparer if possible
The client value comparer will not be used if the model type is a nullable value type
Fix some API issues
Remove some unused code

Fixes #27738
Fixes #27850
Fixes #27791
Part of #27588
AndriySvyryd added a commit that referenced this issue May 3, 2022
Use client value comparer as provider value comparer if possible
The client value comparer will not be used if the model type is a nullable value type
Fix some API issues
Remove some unused code

Fixes #27738
Fixes #27850
Fixes #27791
Part of #27588
AndriySvyryd added a commit that referenced this issue May 5, 2022
Use client value comparer as provider value comparer if possible
    The client value comparer will not be used if the model type is a nullable value type since we need the types to match exactly and the provider type is never nullable
Fix some API issues
Remove some unused code

Fixes #27738
Fixes #27850
Fixes #27791
Part of #27588
smitpatel added a commit that referenced this issue May 13, 2022
ghost pushed a commit that referenced this issue May 13, 2022
bricelam added a commit to bricelam/efcore that referenced this issue Jul 1, 2022
bricelam added a commit to bricelam/efcore that referenced this issue Jul 11, 2022
@bricelam bricelam assigned bricelam and unassigned bricelam Jul 11, 2022
@ajcvickers ajcvickers removed their assignment Jul 25, 2022
ajcvickers added a commit that referenced this issue Jul 25, 2022
Part of #27588.

- Remove params, Obsolete, and add a new ctor to IndexAttribute
- Use entity instead of instance in IIdentityResolutionInterceptor and IMaterializationInterceptor
- Use parameter objects in IIdentityResolutionInterceptor and IInstantiationBindingInterceptor
- Remove entityInstanceName parameter in IInstantiationBindingInterceptor.ModifyBinding
- Rename SkippingIdentityResolutionInterceptor to IgnoringIdentityResolutionInterceptor
- Remove IQueryExpressionInterceptor.CompilingQuery and CompiledQuery
- Rename IQueryExpressionInterceptor.ProcessingQuery to QueryCompilationStarting
bricelam added a commit to bricelam/efcore that referenced this issue Aug 19, 2022
@smitpatel smitpatel removed their assignment Aug 19, 2022
smitpatel added a commit that referenced this issue Aug 19, 2022
smitpatel added a commit that referenced this issue Aug 19, 2022
@AndriySvyryd AndriySvyryd removed their assignment Aug 19, 2022
smitpatel added a commit that referenced this issue Aug 19, 2022
AndriySvyryd added a commit that referenced this issue Aug 19, 2022
Revert 'Add a custom convention which adds a blank trigger to all tables'

Part of #27588
bricelam added a commit to bricelam/efcore that referenced this issue Aug 19, 2022
roji added a commit to roji/efcore that referenced this issue Aug 20, 2022
@roji roji removed their assignment Aug 20, 2022
roji added a commit to roji/efcore that referenced this issue Aug 20, 2022
roji added a commit to roji/efcore that referenced this issue Aug 21, 2022
roji added a commit that referenced this issue Aug 21, 2022
smitpatel added a commit that referenced this issue Aug 22, 2022
smitpatel added a commit that referenced this issue Aug 22, 2022
@smitpatel smitpatel added this to the 7.0.0-rc1 milestone Aug 22, 2022
@bricelam bricelam added the closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. label Aug 31, 2022
@ajcvickers ajcvickers modified the milestones: 7.0.0-rc1, 7.0.0 Nov 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-global closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. type-enhancement
Projects
None yet
Development

No branches or pull requests

6 participants