0

re-linq 1.13.115

With this utility it’s now easier than ever to create full-featured LINQ providers. 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. Get re-linq and take it for a spin to see what it can actually do for you! · Instead of the IQueryable expression tree, re-linq gives you an abstract syntax tree that resembles the original LINQ query expression (the one using the from, where etc. keywords). · This works even when the original query was not a query expression, but a sequence of method invocations of Where(), Select() etc. · You can easily extend or modify quieries using this representation in your application, directly or via a Specification framework. In the process, re-linq gets rid of everything that IQueryable puts between you and your desired target query language: · The structure is simplified (e.g., SelectMany is transformed back to multiple from-sources). · Transparent identifiers are removed. · Sub-queries are identified and can be handled as such. · Expressions are evaluated up-front wherever possible. · Special method calls inserted by Visual Basic are “normalized” so that they are handled implicitly, except if you choose to handle them differently. · re-linq handles even the most complex LINQ query expression, including joins, groups and nested queries. re-linq gives you the tools to easily create your own provider, including: · A set of visitors that you just implement for your transformation. · A registry for translating methods to specific expressions in the target query language (like string methods, or ICollection.Contains). · A mechanism to specify eager fetching for related objects or collections that will automatically create the required queries. · re-linq is completely agnostic of the target query language. You can use it to create any dialect of SQL as well as other query languages such as XQL or Entity SQL.

Leave a Reply