3
我正在使用OData構建Web API服務,並且想按如下方式在服務中公開方法。ASP.NET Web API在EDM模型根目錄下的OData操作
http://myServer/odata/myAction
我目前映射的OData路線如下:
Dim modelBuilder As ODataModelBuilder = New ODataConventionModelBuilder
modelBuilder.EntitySet(Of Product)("Products")
Dim myAction = modelBuilder.Action("myAction")
myAction.Parameter(Of String)("Parameter1")
myAction.Returns(Of Boolean)()
Dim model As IEdmModel = modelBuilder.GetEdmModel
config.Routes.MapODataRoute("ODataRoute", "odata", model)
This wonderful tutorial展示瞭如何與這樣一個實體的動作聯繫起來:
http://myServer/odata/Products(1)/myAction
在介紹之後,我然後可以在創建具有以下行的模型後,在ProductsController類中編寫動作的方法:
Dim myAction = modelBuilder.Entity(Of Product).Action("myAction")
但是,如果我不想將動作與實體相關聯,那麼我會在哪裏編寫動作的方法?是否有我需要寫的DefaultController類?
這正是我所期待的。我看到這個動作顯示在'http:// myServer/odata/$ metadata'中,但是我怎樣從客戶端調用它?我目前正在使用WCF數據服務5.1(OData3)驅動程序進行連接測試,並且希望將OData操作看作是一種方法。但是,在LINQPad中,不可綁定的動作和綁定到實體集合的動作都不可見。 – MCattle 2013-04-04 17:51:21
我發現這個,應該指向正確的方向:http://msdn.microsoft.com/en-us/library/hh859851(v=vs.103).aspx#sectionToggle3 – MCattle 2013-04-04 19:50:26
@KiranChalla有沒有關於這方面的最新新進展得到了開箱即用的支持? – mare 2013-11-26 12:09:00