我需要能夠從ODataQueryOptions轉換爲RestRequest,以便能夠發出與指定的過濾器RestRequest,並創建了以下輔助類:如何映射來自ODataQueryOptions過濾器選項RestRequest
public static class ODataQueryFilterToRestClient
{
public static RestRequest Map(ODataQueryOptions odataQuery)
{
var restRequest = new RestRequest();
if (odataQuery.Filter != null)
{
restRequest.AddQueryParameter(@"$filter", odataQuery.Filter.RawValue);
}
if (odataQuery.Top != null)
{
restRequest.AddQueryParameter(@"$top", odataQuery.Top.RawValue);
}
if (odataQuery.Skip != null)
{
restRequest.AddQueryParameter(@"$skip", odataQuery.Skip.RawValue);
}
if (odataQuery.OrderBy != null)
{
restRequest.AddQueryParameter(@"$orderby", odataQuery.OrderBy.RawValue);
}
//etc
return restRequest;
}
}
鑑於OdataQueryOptions支持以下功能:
有沒有更簡單,使ODataQueryOptions之間的轉換方式RestClient,或其他休息客戶端代理?
在附註中,我不知道是否有更好的方式通過控制器接受參數比ODataQueryOptions更好?
據我所知,你想在另一臺服務器上調用另一個API。如果是這種情況,你應該檢查該API的文檔。如果它不是OData我懷疑它會接受$ filter,$ select。 – ErvinS
你現在的方法到底是什麼問題?這只是一個方法調用。你怎麼想像更簡單的東西? –