OData 是否允许用户使用 IQueryable 查询 SQL EF 数据库?
Does OData allow Users to Query the SQL EF Database with IQueryable?
是否有任何方法可以通过 API 参数查询实际的 EF 数据库?
我们知道 OData 查询允许查询最终结果 API。是否可以使用 IQueryable 从 OData 查询 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);
}
可以在这个优秀的 post 中找到更多信息:
https://www.c-sharpcorner.com/article/paging-with-odata-and-Asp-Net-web-api/
是否有任何方法可以通过 API 参数查询实际的 EF 数据库?
我们知道 OData 查询允许查询最终结果 API。是否可以使用 IQueryable 从 OData 查询 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);
}
可以在这个优秀的 post 中找到更多信息: https://www.c-sharpcorner.com/article/paging-with-odata-and-Asp-Net-web-api/