Конвертировать OData Uri в его эквивалентное выражение Linq - PullRequest
5 голосов
/ 13 апреля 2011

Я создаю службу WCF, результат которой не является строгим каналом OData (по сложным причинам, бизнес-стратегии и т. Д.).Кроме того, формат URL-адреса немного отличается от формата OData, хотя большинство его функций очень похожи.

Как преобразовать URI в дереве выражений Linq ?.

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 17 сентября 2011

Посмотрите на Linq2Rest - https://bitbucket.org/jjrdk/linq2rest. Он анализирует запрос OData в выражении LINQ и наоборотОн также доступен на Nuget.

2 голосов
/ 19 апреля 2011

В настоящее время эта функциональность не предоставляется сама по себе. И написать его самостоятельно довольно сложно (зависит от того, какой тип запросов вам нужно поддерживать и от вашей модели) Действительно ли необходимо отклоняться от протокола OData? Может быть, то, что вам нужно сделать, может быть достигнуто другими способами.

0 голосов
/ 01 марта 2018

Вы можете использовать следующий пакет nuget: https://www.nuget.org/packages/Community.OData.Linq

Позволяет использовать параметры текстового запроса OData в выражении linq для любого IQuerable без зависимости ASP.NET

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