2016-10-30 79 views
1

我一直在研究OData一段時間,我面臨一個特定的需求,我找不到一個解決方案,它正在用斜線包圍的參數調用OData中的函數,換句話說,我需要做到這一點:/實體/鍵/函數名/參數1 /參數2 /參數3 /我試圖使用[RoutePrefix("/entity/{key}/functionName/{param1}/{param2}..."] 沒有任何成功。 動作是這樣的:OData函數路由約定

public IHttpActionResult functionName(int key, int param1, int param2...) 

我知道,你能有這樣的結果,通過使用[RoutePrefix("/entity({key}/functionName(param1={param1}....)。但這不是我想要的。

有沒有人知道它是否可以實現?

回答

2

OData實際上是一個如何與web服務進行通信的規範。它定義瞭如何排序,選擇和過濾,以及如何調用函數。你在這裏建議的是調用一個函數,但不是按照OData指定的方式來調用,所以詢問它是否可以在OData中完成並沒有任何意義。我會嘗試和OData分開實現它,即只使用常規的Web.API或嘗試使用現有的OData格式,否則您將需要重寫大部分OData庫

+0

感謝您的回答湯姆,您是否知道我是否可以實現至少像這樣的問題:http://stackoverflow.com/questions/40343559/how-to-create-a-sub-resource-using-odata-without-creating-a-collection-propert提前致謝。 – Bruno

+1

這對我來說似乎是同樣的問題 - 如果你想改變URL的構建方式,你不再使用OData – TomDoesCode