本文整理汇总了C#中System.Web.Http.OData.Query.ODataQueryOptions.BuildCustomRequest方法的典型用法代码示例。如果您正苦于以下问题:C# ODataQueryOptions.BuildCustomRequest方法的具体用法?C# ODataQueryOptions.BuildCustomRequest怎么用?C# ODataQueryOptions.BuildCustomRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.Http.OData.Query.ODataQueryOptions
的用法示例。
在下文中一共展示了ODataQueryOptions.BuildCustomRequest方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetCars
public IQueryable<Car> GetCars(ODataQueryOptions<Car> options)
{
TopQueryOption top;
SkipQueryOption skip;
OrderByQueryOption orderby;
var customOptions = new ODataQueryOptions<Car>(options.Context,
options.BuildCustomRequest(out top, out skip, out orderby));
IQueryable query =
customOptions.ApplyTo(
SearchContext.GetQueryable<Car>().Where(c => c.TemplateId == Constants.Templates.CarModel));
var results = query as IQueryable<Car>;
if (results != null)
{
if (skip != null)
{
results = results.Skip(skip.Value);
}
if (top != null)
{
results = results.Take(top.Value);
}
if (orderby != null)
{
string[] parts = orderby.RawValue.Split(' ');
if (parts.Length > 1 && !string.IsNullOrEmpty(parts[0]) && !string.IsNullOrEmpty(parts[1]))
{
string fieldName = parts[0];
if (parts[1] == "asc")
{
results = results.OrderBy(c => c[fieldName]);
}
else if (parts[1] == "desc")
{
results = results.OrderByDescending(c => c[fieldName]);
}
}
}
return results;
}
return null;
}