WCF Data Service 需要 ORM 支援,主流皆相容:Entity Framework、LINQ to SQL、ALinq 等。
依選用 ORM 建立實體類別與資料庫對應,此處假設已有 NorthwindEntities Context。

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

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 輸出與分頁。WCF Data Services 5.6.4 Tools。[IgnoreDataMember] 或設定 config.DataServiceBehavior.MaxProtocolVersion = V3 並使用 PreserveReferencesHandling。$select)、索引優化。