-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Reduce provider dependency on internal code #15067
Conversation
Specifically, refactoring around IRelationalCommand and its interactions so that command building can be overridden without using internals. See issue #11409. Also, fixes #14923 by taking the logger from SelectExpressionDependencies, which is now scoped. Made public: * RelationalAnnotationsBuilder * GetDeclaredForeignKeys * GetDeclaredNavigations * GetDeclaredProperties (Make sure also for IMutable types...) * GetDeclaredServiceProperties * GetDeclaredIndexes * DisplayName (IEntityType extension) * ShortDisplayName (System.Type extension) * GetPropertyAccessList * RemoveConvert * ConfigurationSource * CoreAnnotationNames * GetAllBaseTypesInclusive * Property.Format (made extension method on IEnumerable<IPropertyBase> * FindPrincipal * ScaffoldingAnnotationNames * FindSharedTableRootPrimaryKeyProperty * RelationalCommand * RelationalCommandBuilderFactory * RelationalCommandBuilder Stopped using in providers: * IndentedStringBuilder * NonCapturingLazyInitializer Removed: * RelationalParameterBuilder Also added new parameter objects as needed. Did not touch the majority of the conventions API. Also, left most query APIs.
Beware! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursory review, with my limited knowledge context seems good, I think 🐑 🇮🇹 is the right expression? :)
Ideally I'd be able to build EFCore.PG against this PR to provide more feedback, but I really have no idea where I'd find the nupkgs with the right versions... If you have any knowledge/info let me know. Otherwise we can merge and I can try to sync EFCore.PG soon to raise any issues.
I don't have enough context to understand the change of IRelationalCommandBuilderFactory and ShaperCommandContextFactory from Singleton to Scoped (because of the recent scoped logging), but I'm wondering if the increased scopeness of services impacts perf in any way (i.e. more services need to be created per DbContext)?
|
@smitpatel I can do that, but is there really no automatic publishing of packages to a nuget feed? This used to be the case with myget, did Arcade remove this? |
This is PR build. They were never pushed to myget. |
My bad, I'll give the packages a try tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@roji Singleton to scoped could have a perf impact, but it's cleaner than before. @smitpatel and I talked briefly yesterday about this changing again for the new query pipeline. Let's see how it goes. |
@ajcvickers ok. Regardless, I'll try to sync EFCore.PG and will report any issues with public/internal. |
Specifically, refactoring around IRelationalCommand and its interactions so that command building can be overridden without using internals. See issue #11409.
Also, fixes #14923 by taking the logger from SelectExpressionDependencies, which is now scoped.
Made public:
Stopped using in providers:
Removed:
Also added new parameter objects as needed.
Did not touch the majority of the conventions API. Also, left most query APIs.