首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP .NET MVC 4 WebApi:手动处理OData查询

ASP .NET MVC 4 WebApi:手动处理OData查询
EN

Stack Overflow用户
提问于 2012-05-28 16:07:17
回答 4查看 23.2K关注 0票数 56

我有一个使用ASPMVC4提供的 WebAPI 创建的Web服务。我知道WebAPI工作在其上的层会自动处理OData查询(如$filter$top$skip),但如果我想自己处理过滤怎么办?

I don't simply return data from my database,但我有另一个层,它添加了一些属性,进行了一些转换等。所以查询我的所有数据,转换它们,并将它们返回到WebAPI类以进行OData过滤还不够好。当然,它非常慢,而且通常是一个糟糕的想法。

那么,有没有一种方法可以将OData查询参数从WebAPI入口点传播到我调用以获取和转换数据的函数?

例如,GET to /api/people?$skip=10&$top=10将在服务器上调用:

代码语言:javascript
复制
public IQueryable<Person> get() {
    return PersonService.get(SomethingAboutCurrentRequest.CurrentOData);
}

PersonService

代码语言:javascript
复制
public IQueryable<Person> getPeople(var ODataQueries) {
    IQueryable<ServerSidePerson> serverPeople = from p in dbContext.ServerSidePerson select p;
    // Make the OData queries
    // Skip
    serverPeople = serverPeople.Skip(ODataQueries.Skip);
    // Take
    serverPeople = serverPeople.Take(ODataQueries.Take);
    // And so on
    // ...

    // Then, convert them
    IQueryable<Person> people = Converter.convertPersonList(serverPeople);
    return people;
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10781309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档