首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF Data Service 實戰總結 (二):建立 OData 服務完整流程

     編輯:關於.NET

前置條件

WCF Data Service 需要 ORM 支援,主流皆相容:Entity Framework、LINQ to SQL、ALinq 等。

步驟 1:建立 Model(略)

依選用 ORM 建立實體類別與資料庫對應,此處假設已有 NorthwindEntities Context。

Model 類別圖

步驟 2:新增 WCF Data Service

右鍵專案 > Add > New Item > WCF Data Service(若無此範本請安裝 WCF Data Service Tools)。

新增 WCF Data Service

步驟 3:設定資料來源與存取規則

public class NorthwindDataService : DataService<NorthwindEntities>
{
    public static void InitializeService(IDataServiceConfiguration config)
    {
        // 範例:開放 Products、Categories 讀取權限
        config.SetEntitySetAccessRule("Products", EntitySetRights.AllRead);
        config.SetEntitySetAccessRule("Categories", EntitySetRights.AllRead);
        
        // 開放 Service Operation
        // config.SetServiceOperationAccessRule("MyOperation", ServiceOperationRights.All);
        
        // 設定分頁大小
        config.SetEntitySetPageSize("Products", 20);
        
        // 允許詳細錯誤資訊(開發階段)
        config.UseVerboseErrors = true;
    }
}

關鍵設定說明

方法用途
SetEntitySetAccessRule控制實體集 CRUD 權限:AllRead, AllWrite, All, None
SetServiceOperationAccessRule控制自訂服務操作存取權
SetEntitySetPageSize伺服器端分頁,防止單次回傳過大
UseVerboseErrors回傳詳細例外堆疊,僅開發環境啟用
MaxProtocolVersion指定 OData 版本(V2/V3)

驗證服務

  • 瀏覽 .svc 根網址:顯示服務文件與實體集連結。
  • 查詢 /Products?$format=json&$top=5 驗證 JSON 輸出與分頁。
  • 嘗試 POST/PUT/DELETE 驗證寫入權限(需正確設定 AccessRule)。

常見問題

  1. 找不到 WCF Data Service 範本:Visual Studio Installer > Individual components > WCF Data Services 5.6.4 Tools。
  2. 循環參考導致序列化失敗:實體類別加上 [IgnoreDataMember] 或設定 config.DataServiceBehavior.MaxProtocolVersion = V3 並使用 PreserveReferencesHandling。
  3. 大量資料效能:啟用伺服器分頁、投影($select)、索引優化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved