是否存在通过API参数查询实际EF数据库的方法?
我们知道OData Query允许查询最终结果API。是否可以使用IQueryable从OData Query Api层发送简单的SQL EF查询?
我们要应用分页,而不是提取所有1000条记录,而是让一些API层查询仅需要的结果(例如,仅结果5-10),等等。这可能并非始终都是最佳做法,只是在某些情况下需要存在的选项。
/api/Product?$skip=5&$top=5
/api/persons?$orderby=name
/api/persons?$select=ID,Name
/api/students?$filter=Name eq ‘Todd’
答案 0 :(得分:1)
参数$ skip和$ top确实存在于OData中,如果在IQueryable上执行这些参数,则它们应该可以工作。
例如,调用以下URL:
http://localhost:24367/TestData?$skip=5&$top=5
将跳过前5条记录,并获取接下来的5条记录。
您的MVC操作(如果您是MVC)将如下所示:
[EnableQuery]
public IHttpActionResult Get()
{
var result = GetData().AsQueryable();
return Ok(result);
}
更多信息可以在这篇出色的文章中找到: https://www.c-sharpcorner.com/article/paging-with-odata-and-Asp-Net-web-api/