Fixed support for using multiple DbContexts #836
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #739.
Added example project with tests, as this is tricky to get right (and not accidentally break in the future).
In the past, this was accomplished by calling
ResourceGraphBuilder.AddDbContext()
fromservices.AddJsonApi()
. I've changed that to instead accept a collection ofDbContext
types in the non-generic overload ofservices.AddJsonApi()
, so that we can also register matching resolvers.This also fixes
InverseNavigation
to loop over allDbContexts
instead of a single one.And for this to work, I found another bug where
ResourceService<TResource>
was depending on injectedIResourceRepository<TResource,TId>
instead ofIResourceRepository<TResource>
, so it would pick the wrong repository.Finally, I simplified caching of scanned assemblies that was spread over multiple layers doing duplicate work.