阅读量:0
在 C# 中使用 OData 时,可以使用 LINQ 查询和 Skip
和 Take
方法实现数据分页。
以下是一个示例代码:
using System; using System.Linq; using System.Net.Http; using System.Web.Http; using Microsoft.OData.Client; public class CustomersController : ApiController { private static readonly IDataService _dataService = new DataService("http://localhost:1234/odata"); // GET api/customers public IQueryable<Customer> GetCustomers() { return _dataService.Customers.Where(c => c.Name != "John Doe"); } // GET api/customers/page public IQueryable<Customer> GetCustomersPage(int pageNumber, int pageSize) { return GetCustomers().Skip((pageNumber - 1) * pageSize).Take(pageSize); } }
在上面的示例中,GetCustomers
方法返回所有客户的查询结果,而 GetCustomersPage
方法则返回第 pageNumber
页的数据,每页 pageSize
条记录。
请注意,Skip
和 Take
方法是在查询结果上执行的,因此只有在调用这些方法之后才会执行实际的查询操作。这意味着您可以在需要时动态地更改分页参数,并且只会查询所需的数据。
另外,如果您使用的是 OData v4 或更高版本,则还可以使用 ODataQueryOptions
对象来执行更复杂的分页和筛选操作。