c# - OData 是否允许用户使用 IQueryable 查询 SQL EF 数据库?
问题描述
是否有任何方法可以通过 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’
解决方案
参数 $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/
推荐阅读
- ruby - 没有这样的文件或目录@rb sysopen
- node.js - 使用 Homebrew 安装节点 10 时出错
- jenkins - 无法从 Octopus 运行 Bash 脚本
- elasticsearch - Kibana 开发工具撤消 PUT 请求
- go - 如何从 pkcs#7 文件加载证书?
- python - 如何将大量 .WAV 文件转换为单个 .CSV 文件
- azure - Azure Monitor 日志 - 虚拟机规模集指标
- mongodb - MongoDB:如何查找日期格式为字符串的文档 2021-04-04 12:40:05
- splunk - 将数据获取到 Hyperledger Fabric 的 Splunk 应用程序的问题
- javascript - Css滚动捕捉在N处开始可见元素