This would be an implementation of the Transparent Functional Reactive Programming where the model and all its state becomes observable, default values are computable and a new reactive type of conventions is added.
Default values are only computed when the corresponding value is requested and it hasn't been overridden. Default values and reactive conventions automatically subscribe to the changes on all used inputs and rerun if any input changes.
If a reactive convention implements specific convention interfaces they can be used to run a faster local version.
Observable value changes are grouped in the current convention batch and the reactions are executed atomically.
This is closely related to #15898. A new Default ConfigurationSource will be added to indicate that a value is set through this mechanism.
This will allow to efficiently calculate the values for value generated, type mapping (review usages of ProviderConventionSetBuilderDependencies.TypeMappingSource), column and table name which in turn allows removing TableNameFromDbSetConvention and dropping DbContext and DbSetFinder dependencies from RelationalConventionSetBuilder.
This would be an implementation of the Transparent Functional Reactive Programming where the model and all its state becomes observable, default values are computable and a new reactive type of conventions is added.
Default values are only computed when the corresponding value is requested and it hasn't been overridden. Default values and reactive conventions automatically subscribe to the changes on all used inputs and rerun if any input changes.
If a reactive convention implements specific convention interfaces they can be used to run a faster local version.
Observable value changes are grouped in the current convention batch and the reactions are executed atomically.
This is closely related to #15898. A new Default
ConfigurationSourcewill be added to indicate that a value is set through this mechanism.This will allow to efficiently calculate the values for value generated, type mapping (review usages of
ProviderConventionSetBuilderDependencies.TypeMappingSource), column and table name which in turn allows removing TableNameFromDbSetConvention and droppingDbContextandDbSetFinderdependencies from RelationalConventionSetBuilder.