ADCCure.Azure.Documents.ODataCore.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]}) &lt; 100       $count=true&amp;&#36;filter=englishName eq 'Microsoft' => VALUE COUNT(1) FROM c WHERE c.englishName = 'Microsoft'
Keywords: odata|documentdb|sql|translate|convert|core