Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ODataTeam/b0ceb69a0c7cb2e1c2dc to your computer and use it in GitHub Desktop.
Save ODataTeam/b0ceb69a0c7cb2e1c2dc to your computer and use it in GitHub Desktop.
Parsing query options using query option parser
Dictionary<string, string> options = new Dictionary<string, string>()
{
{"$select" , "ID" },
{"$expand" , "ProductDetail" },
{"$filter" , "Categories/any(d:d/ID gt 1)" },
{"$orderby" , "ID desc" },
{"$top" , "1" },
{"$count" , "true" },
{"$search" , "tom" },
};
IEdmType type = model.FindDeclaredType("ODataDemo.Product");
IEdmNavigationSource source = model.FindDeclaredEntitySet("Products");
ODataQueryOptionParser parser
= new ODataQueryOptionParser(model, type, source, options);
SelectExpandClause selectExpand =
parser.ParseSelectAndExpand(); //parse $select, $expand
FilterClause filter = parser.ParseFilter(); // parse $filter
OrderByClause orderby = parser.ParseOrderBy(); // parse $orderby
SearchClause search = parser.ParseSearch(); // parse $search
long? top = parser.ParseTop(); // parse $top
long? skip = parser.ParseSkip(); // parse $skip (null)
bool? count = parser.ParseCount(); // parse $count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment