TurnerSoftware / MongoFramework

An "Entity Framework"-like interface for MongoDB
MIT License
392 stars 35 forks source link

Support LINQ3 in the MongoDB Driver #342

Open Turnerj opened 1 year ago

Turnerj commented 1 year ago

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: