ADCCure.Azure.Documents.OData.Sql (nuget): Currently it supports below query mappings:       primitive:       field                       => c.field       parent/child                => c.parent.child       Namespace.EnumType'enumVal' => 'enumVal'        queries:       $select  => SELECT       $filter  => WHERE       $top     => TOP       $orderby => ORDER BY        functions:       Items/any(a: a/field op 'value') => SELECT value c FROM c JOIN a IN c.Items WHERE a.field op 'value'       contains(field,'value')     => CONTAINS(c.field,'value')       startswith(field,'value')   => STARTSWITH(c.field,'value')       endswith(field,'value')     => ENDSWITH(c.field,'value')       toupper(field)              => UPPER(c.field)       tolower(field)              => LOWER(c.field)       length(field)               => LENGTH(c.field)       indexof(field,'value')      => INDEX_OF(c.field,'value')       substring(field,idx1,idx2)  => SUBSTRING(c.field,idx1,idx2)       trim(field)                 => LTRIM(RTRIM(c.englishName))       concat(field,'value')       => CONCAT(c.englishName,'value')       geography'POLYGON((31.8 -5, 32 -5, 32 -4.7, 31.8 -4.7, 31.8 -5))       => ST_INTERSECTS(c.area,{\"type\":\"Polygon\",\"coordinates\":[[[31.8,-5.0],[32.0,-5.0],[32.0,-4.7],[31.8,-4.7],[31.8,-5.0]]]})       geography'POINT(31.9 -4.8)') lt 100 => ST_DISTANCE(c.location,{\"type\":\"Point\",\"coordinates\":[31.9,-4.8]}) < 100       $count=true&$filter=englishName eq 'Microsoft' => VALUE COUNT(1) FROM c WHERE c.englishName = 'Microsoft'
Keywords: odata|documentdb|sql|translate|convert