文章轉自:http://chris.eldredge.io/blog/2014/04/24/Composite-Keys/
在我們的基本配置中,我們告訴模型建構器我們的實體有一個由 ID 和版本組成的複合鍵:
# 雷雷 | 雷雷 |
#這足以讓我們的 OData feed 以如下形式呈現每個單獨實體的 edit
和 self
連結:
但是,如果我們導航到此 URL,我們將返回整個實體集,而不是僅透過鍵來取得此實體。
為了得到正確的行為,首先我們需要重寫 PackagesODataController,透過鍵取得單一實體實例:
雷雷 |
我們可以透過建立一個新的路由約定來解決這個問題,該約定將括號內的內容綁定到我們的路由資料映射:
雷雷 |
並將URI的原始鍵部分分割成鍵/值對,並將它們全部加到routeValues字典中。
一旦完成,標準操作解析就會啟動並找到要呼叫的正確操作重載。
此路由約定改編自 WebApi ODataCompositeKeySample 專案。
IQueryable
中選擇單一實例。這限制了我們自訂如何透過鍵來尋找實例的能力。在 WebApi OData 中,我們必須明確定義一個重載,透過鍵來取得實體實例,從而使我們能夠更好地控制查詢的執行方式。這種差異對於大多數專案來說可能並不重要,但就NuGet.Lucene.Web 而言,它支援按需鏡像功能,本地來源可以動態地從另一台伺服器取得包,將其添加到本地儲存庫,然後將其發送回客戶端,就好像它始終存在一樣。
要在 WCF 資料服務中自訂此功能,需要進行大量後空翻。 ##系列索引
###介紹###
基本 WebApi OData複合鍵
預設流
以上是[轉]WebApi OData 的複合鍵的詳細內容。更多資訊請關注PHP中文網其他相關文章!