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

Support LINQ3 in the MongoDB Driver #342

Open
Turnerj opened this issue Feb 26, 2023 · 0 comments
Open

Support LINQ3 in the MongoDB Driver #342

Turnerj opened this issue Feb 26, 2023 · 0 comments
Labels
affects-querying Query-related issue enhancement Enhancements & features moderate-change Moderate changes required

Comments

@Turnerj
Copy link
Member

Turnerj commented Feb 26, 2023

With the 2.19.0 version of the MongoDB driver (in #337) comes a new internal implementation of the LINQ provider. Due to the low level way part of the queryable system needs to hook into the driver, there will need to be changes to MongoFrameworkQueryableProvider to support LINQ3.

One of the biggest benefits with LINQ3 is the AppendStage queryable extension, allowing for a custom PipelineStageDefinition to be appended to the current expression which is super useful for more advanced forms of query construction. This will allow removal of the "PreStage" in MongoFrameworkQueryableProvider which was used by a SearchGeo LINQ extension in MongoFramework.

With LINQ3, the two biggest questions look around the following:

  • How result transformers are handled - we need access ourselves to feed it through the right value detection system.
  • How the serializer is determined - will likely need it still for calls to the aggregation pipeline etc.
@Turnerj Turnerj added enhancement Enhancements & features affects-querying Query-related issue moderate-change Moderate changes required labels Feb 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-querying Query-related issue enhancement Enhancements & features moderate-change Moderate changes required
Projects
None yet
Development

No branches or pull requests

1 participant