在 上一章 中,介紹了如何通過 OData 協議來訪問 OData 服務提供的資源。下面來介紹如何創建一個 OData 服務。在這篇文章中,主要說明在.NET的環境下,如何使用 WCF Data Service 來創建OData服務。當然,對於 JAVA 或者其它平台,也是可以創建 OData 服務的。甚至是數據庫,都可以提供 OData 服務。
WCF Data Service 是需要 ORM 的支持的,當然,主流的 ORM 都已經支持 WCF Data Service 了,包括(但不限於) Entity Framework、Linq to SQL、ALinq 這些主流的 ORM 框架。
一、創建 Model
使用Wcf Data Service,首先要做的工作就是創建 Model 了,關於如何創建 Model 的,在這里不再述說,如果不清楚的,請根據你所使用的 ORM,閱讀相關的教程。
二、創建 Wcf Data Service
右鍵點擊項目,選擇添加項,然后選擇 Wcf Data Service,如果找不到這項,請安裝 Wcf Data Service 模版。
生成的代碼如下:
public class NorthwindDataService : DataService< /* TODO: put your data source class name here */ > { // This method is called only once to initialize service-wide policies. public static void InitializeService(IDataServiceConfiguration config) { // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc. // Examples: // config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead); // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); } }
接着需要做的是,將生成代碼中的 <> 替換成數據源實體類,同時,設置好訪問權限。為了方便起,提供了所有的權限。
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class NorthwindDataService : DataService<NorthwindDatabase> { // This method is called only once to initialize service-wide policies. public static void InitializeService(DataServiceConfiguration config) { config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; config.SetEntitySetAccessRule("*", EntitySetRights.All); config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead); config.UseVerboseErrors = false; } }
如果你使用的 ALinq,還需要下載 WcfDataService 的 t4 模版用來生成相關的代碼。點擊這里下載 ,將該t4文件添加到項目,並命名為Northwind.DataServices.tt,打開該文件,將其中的 FilePath 改為對應的 ADMF 文件路徑,該路徑可以絕對或者相對路徑,以便生成相應的代碼。
三、啟動 WCF Data Service。
或鍵點擊NorthwindDataService.svc文件,在彈出的菜單中,選擇 View in Browser 。
運行如下圖所示:
接着,便可以使用 OData 協議對數據源進訪問。從這里可以看得出來,通過使用 Wcf Data Service ,可以很方便快捷地創建一個OData 服務。
相關鏈接: