Project Description With re-linq, it's now easier than ever to create full-featured LINQ providers.
Yes, you've heard that before. But re-linq is the real thing: it is used by Entity Framework 7 and NHibernate.
Depending on the differences between LINQ and the target query language you want to address, there is probably still a major piece of work ahead of you. But with re-linq this is about as simple as it can be: just what you thought was ahead of you before you discovered the internals of IQueryable, and then some more help.
There's one more potential advantage: The remaining effort is probably mostly in the semantic transformation from LINQ to the target query language, especially in cases where the target language does not support certain LINQ constructs (like sub-queries or LINQ group joins). Also, certain optimizations need to be made, e.g. in order to avoid the select n+1 problem via eager fetching. In many cases, the necessary transformations are similar between various target languages. re-linq allows you to do these transformations in its own query model representation, before you actually translate to the target language. These transformations can be shared between different LINQ providers via the re-motion contrib repository.
re-linq is part of the re-motion project. See the project home page for more interesting libraries, such as re-mix.
Ressources
Related Projects
Sources The most current source code of re-linq is available on GitHub:
Binaries The re-linq releases are distributed as NuGet packages:
Versioning Starting with version 2.0, the releases follow Semantic Versioning (http://semver.org/)
License The Remotion.Linq.dll (the "Frontend") is licensed under the Apache Software License 2.0.
Contributing We have official contribution practices documented: Contributing to re-linq
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4