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.
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
MongoFrameworkQueryableProviderto support LINQ3.One of the biggest benefits with LINQ3 is the
AppendStagequeryable extension, allowing for a customPipelineStageDefinitionto be appended to the current expression which is super useful for more advanced forms of query construction. This will allow removal of the "PreStage" inMongoFrameworkQueryableProviderwhich was used by aSearchGeoLINQ extension in MongoFramework.With LINQ3, the two biggest questions look around the following: