在 上一章 中,介紹瞭如何經過 OData 協議來訪問 OData 服務提供的資源。下面來介紹如何建立一個 OData 服務。在這篇文章中,主要說明在.NET的環境下,如何使用 WCF Data Service 來建立OData服務。固然,對於 JAVA 或者其它平臺,也是能夠建立 OData 服務的。甚至是數據庫,均可以提供 OData 服務。html
WCF Data Service 是須要 ORM 的支持的,固然,主流的 ORM 都已經支持 WCF Data Service 了,包括(但不限於) Entity Framework、Linq to SQL、ALinq 這些主流的 ORM 框架。數據庫
使用Wcf Data Service,首先要作的工做就是建立 Model 了,關於如何建立 Model 的,在這裏再也不述說,若是不清楚的,請根據你所使用的 ORM,閱讀相關的教程。框架
右鍵點擊項目,選擇添加項,而後選擇 Wcf Data Service,若是找不到這項,請安裝 Wcf Data Service 模版。ide
生成的代碼以下:spa
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); } }
接着須要作的是,將生成代碼中的 <> 替換成數據源實體類,同時,設置好訪問權限。爲了方便起,提供了全部的權限。code
[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 文件路徑,該路徑能夠絕對或者相對路徑,以便生成相應的代碼。htm
或鍵點擊NorthwindDataService.svc文件,在彈出的菜單中,選擇 View in Browser 。blog
運行以下圖所示:教程
接着,即可以使用 OData 協議對數據源進訪問。從這裏能夠看得出來,經過使用 Wcf Data Service ,能夠很方便快捷地建立一個OData 服務。ip
相關連接: