Базовая библиотека для преобразования лямбда-выражения в запрос фильтра OData

#.net-core #lambda #odata #expression-trees

Вопрос:

Я не уверен, что мои навыки Google подводят меня, но я с трудом нахожу библиотеку точек для преобразования лямбда-выражения в запрос OData $filter .

Я знаю, что, вероятно, могу использовать Microsoft.AspNetCore.OData библиотеку (или одну из базовых библиотек, от которых она зависит), но, насколько я понимаю, существуют раздражающие зависимости от HttpContext моделей EDM и EDM. (По крайней мере, так я понял, когда читал о модульном тестировании и контроллерах с конечными точками OData.)

В сущности, я ищу что-то столь же простое, как

 Expression<Fun<Order, bool>> x = y => y.Quantity > 25;
var filter1 = x.ToODataFilter();

// filter1 = "Quantity gt 25"

Expression<Fun<Order, bool>> w = x => x.Quantity < 5 amp;amp; x.IsShipped == true;
var filter2 = w.ToODataFilter();

// filter2 = "Quantity lt 5 and IsShipped eq 1"

 

Я бы даже был в порядке, если бы свойства навигации не поддерживались.

Есть какие-нибудь предложения?

Комментарии:

1. Возможно, вы захотите попробовать Просто. Одата. Клиент . Но обратите внимание, что AFAIK, запрашивающий библиотеку для выполнения каких-либо действий, не относится к теме StackOverflow.