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

Use layering to make conventions more robust #15898

Open
Tracked by #22952
AndriySvyryd opened this issue Jun 1, 2019 · 2 comments
Open
Tracked by #22952

Use layering to make conventions more robust #15898

AndriySvyryd opened this issue Jun 1, 2019 · 2 comments
Assignees
Labels
area-conventions area-model-building consider-for-current-release needs-design punted-for-6.0 punted-for-7.0 Originally planned for the EF Core 7.0 (EF7) release, but moved out due to resource constraints. type-enhancement
Milestone

Comments

@AndriySvyryd
Copy link
Member

AndriySvyryd commented Jun 1, 2019

  • Store different configuration source values in separate layers, so when a higher source value is removed the lower source can be restored without re-running the conventions
  • Use reference counting to avoid scanning the model for unused elements. When a configuration source of an aspect is changed because it is referenced from another element this reference should be stored in a collection, so if all references are removed the aspect can be removed as well or its configuration source downgraded to what it was previously
    • This allows to remove most invocations on removed members and stop running the conventions when a removed member is readded
    • Call StopProcessingIfChanged after every convention automatically
  • When the conventions for an event are done running the current model state should be returned
@ajcvickers
Copy link
Member

See also #23575

@ajcvickers
Copy link
Member

See also #29890

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-conventions area-model-building consider-for-current-release needs-design punted-for-6.0 punted-for-7.0 Originally planned for the EF Core 7.0 (EF7) release, but moved out due to resource constraints. type-enhancement
Projects
None yet
Development

No branches or pull requests

2 participants