OData Linq to строка запроса

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

например, если мы знаем, что служба возвращает определенный тип say "ProductDTO", я хочу иметь возможность сделать что-то вроде этого:

(from p in ODataSource<ProductDTO>
 where p.Name == "hi"
 select new {p.Model, Name}).ToODataQuery();

который вернет соответствующий $filter и $select команды в виде строки, которая может быть добавлена к URL.

кто-нибудь знает любую библиотеку, которая может сделать что-то подобное?

2 ответов



Я не использовал его, но исследую аналогичную тему, и похоже, что он должен предоставить функциональность, которую вы ищете: https://bitbucket.org/jjrdk/linq2rest/wiki/Home

вот статья, которая показывает использование его в качестве клиента oData: http://blog.petegoo.com/index.php/2012/03/11/creating-a-net-queryable-client-for-asp-net-web-api-odata-services/

на основе вики (и не на основе какого-либо опыта работы с linq2rest), похоже, что он идет в обоих направлениях - выражение LINQ для строки запроса и строка запроса для выражения LINQ.