2011-04-13 16 views
5

Estoy creando un servicio WCF cuyo resultado no es un feed OData estricto (por razones complicadas, estrategia comercial, etc.). Además, el formato de la URL es ligeramente diferente de OData, aunque la mayoría de sus características son muy similares.Convierte OData Uri en su expresión Linq equivalente

¿Cómo puedo transformar el URI en un árbol Linq Expression ?.

Gracias de antemano.

Respuesta

2

Actualmente esta funcionalidad no está expuesta por sí misma. Y escribirlo usted mismo es bastante complejo (depende del tipo de consultas que necesita para respaldar y en su modelo). ¿Es realmente necesario desviarse del protocolo OData? Tal vez lo que necesita hacer se puede lograr a través de otros medios.

+0

Gracias por su respuesta. Es necesario porque la estrategia comercial cambia las palabras clave y el feed devuelto es ligeramente diferente (por ejemplo, carga útil de entrada en una extensión personalizada). – Merrin

+0

Tengo que transformar el Uri que recibe en una consulta de Linq. Si fuera como OData, no hay problema porque WCF Data Services ya hace todo el trabajo. El problema es que internamente es casi como OData pero con un formato Uri diferente. – Merrin

+0

Actualmente estoy "decodificando" el Uri y, a través de Dynamic Linq, las consultas de inicio. – Merrin

0

Puede utilizar siguiente paquete Nuget: https://www.nuget.org/packages/Community.OData.Linq

Permite utilizar los parámetros de consulta de texto OData en expresson LINQ para cualquier IQuerable sin ASP.NET dependencia

var result = query.OData().Filter("Id eq 1 or Name eq 'n3'").OrderBy("Name desc").ToArray(); 
Cuestiones relacionadas