2012-11-04 34 views
0

我已經使用C#創建了一個非常簡單的REST風格的Web服務。我有一個ADO.NET實體模型和一個WCF數據服務。這對於檢索我的遠程應用程序上的信息工作正常。然而,我現在試圖創建一個RESTful函數來響應發佈的數據並將其添加到我的數據庫中。下面是我到目前爲止的代碼共享數據:REST風格的C#WCF發佈到功能

namespace WcfService10 
{ 
    public class GetInformation : DataService<DBLocalEntities> 
    { 
     // This method is called only once to initialize service-wide policies. 
     public static void InitializeService(DataServiceConfiguration config) 
     { 
      // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc. 
      // Examples: 
      config.SetEntitySetAccessRule("users", EntitySetRights.AllRead); 
      // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); 
      config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3; 
     } 
    } 
} 

爲了增加處理髮布信息到我的RESTful服務的方式,我會怎樣呢?這與添加WCF服務一樣簡單,還是應該與通過REST工作不同?

+0

考慮使用Web API for REST而不是使用WCF –

+0

解決了您的問題?如果是這樣,請更新 –

回答

0

修改你的實體訪問規則設置:

config.SetEntitySetAccessRule("users", EntitySetRights.All); 

在您的客戶端代碼,您可以添加一個項目就像我們在EF做實體。

DBLocalEntities client = new DBLocalEntities(URI); 
User newUser = new User() 
    { 
     //Set values to properties 
    } 
client.AddTousers(newUser); 
client.SaveChanges(); 

這將自動生成適當的URI來發布數據。它以RESTful方式完成,但HTTP方法是從我們這裏抽象出來的。您也可以像EF那樣修改和刪除值。