/// <summary> /// Initializes a new instance of the <see cref="ODataQueryOptions"/> class based on the incoming request and some metadata information from /// the <see cref="ODataQueryContext"/>. /// </summary> /// <param name="context">The <see cref="ODataQueryContext"/> which contains the <see cref="IEdmModel"/> and some type information.</param> /// <param name="request">The incoming request message.</param> public ODataQueryOptions(ODataQueryContext context, HttpRequest request) { if (context == null) { throw Error.ArgumentNull("context"); } if (request == null) { throw Error.ArgumentNull("request"); } _assemblyProvider = request.AssemblyProvider(); Context = context; Request = request; RawValues = new ODataRawQueryOptions(); var queryOptionDict = request.Query.ToDictionary(p => p.Key, p => p.Value.FirstOrDefault()); _queryOptionParser = new ODataQueryOptionParser( context.Model, context.ElementType, context.NavigationSource, queryOptionDict); BuildQueryOptions(queryOptionDict); }