共用方式為


Entity Framework 提供者 (WCF Data Services)

如同 WCF Data Services 一般,ADO.NET Entity Framework 是以實體資料模型為基礎 (實體資料模型是一種實體關聯模型)。 Entity Framework 會將針對實體資料模型 (稱為「概念模型」(conceptual model)) 實作的運算,轉譯為針對資料來源的同等運算。 因此,Entity Framework 非常適合做為以關聯式資料為基礎之資料服務的提供者,而且只要資料庫具有支援 Entity Framework 的資料提供者,皆可與 WCF Data Services 搭配使用。 如需目前支援 Entity Framework 的資料來源清單,請參閱有關 Entity Framework 協力廠商提供者 內容的文件。

在概念模型中,實體容器是服務的根。 您必須先在 Entity Framework 中定義概念模型,資料服務才能公開資料。 Entity Framework 會提供可根據概念模型自動產生物件層的工具。 物件層包含實體類型和繼承自 ObjectContext 類別的容器類別。 容器類別通常也有實體集屬性,這些屬性會傳回指定之類型的實體 IQueryable<T> 集合。 當您使用 Entity Framework 提供者時,只要提供這個容器類別做為從其衍生資料服務之 DataService<T> 的類別即可,如以下的 Northwind 資料服務範例所示。

Public Class Northwind
    Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>

如需詳細資訊,請參閱 HOW TO:使用 ADO.NET Entity Framework 資料來源建立資料服務 (WCF Data Services)

Entity Framework 的 Code First 功能是在 Entity Framework 4.1 中所引進。 當您使用 Code First 定義資料模型時,您要定義衍生自 DbContext 類別 (而非 ObjectContext 類別) 的內容類別。 DbContext 執行個體也可以當做 DataService<T> 類型使用,您的資料服務會從其衍生。

WCF Data Services 支援開放式並行存取模型,其方式是讓您定義實體的並行語彙基元。 這個並行語彙基元包含實體的一個或多個屬性,資料服務會使用它來判斷正在要求、更新或刪除的資料中是否已經發生變更。 當取自要求中 eTag 的語彙基元值與目前實體的值不同時,資料服務就會引發例外狀況。 為了指示屬性 (Property) 為並行語彙基元的一部分,您必須在 Entity Framework 提供者所定義的資料模型中套用 ConcurrencyMode="Fixed" 屬性 (Attribute)。 並行語彙基元不得包含索引鍵屬性或導覽屬性。如需詳細資訊,請參閱更新資料服務 (WCF Data Services)

如需 Entity Framework 的詳細資訊,請參閱 Entity Framework Overview

請參閱

概念

資料服務提供者 (WCF Data Services)

反映提供者 (WCF Data Services)

實體資料模型