在 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
對象來執行更復雜的分頁和篩選操作。