共用方式為


Web 服務和 Entity Data Model (應用程式案例)

實體資料模型 (EDM) 在資料來源上提供了抽象的概念層。物件服務會將概念層中定義的實體具體化成為 CLR 物件,以便在用戶端應用程式 (例如 Windows Form 應用程式和 ASP.NET 應用程式) 中使用。實體架構 支援將實體物件序列化成可進行實體物件的遠端與訊息式交換的格式,例如 Web 服務和 Windows Communication Foundation (WCF)。物件可以使用二進位序列化、XML 序列化和 WCF 資料合約序列化來進行序列化,以便使用二進位資料流或訊息式通訊協定進行傳輸。如需詳細資訊,請參閱序列化物件 (Entity Framework)。物件也可以從訊息或資料流擷取、還原序列化,然後再附加到物件內容。如需詳細資訊,請參閱附加物件 (Entity Framework)

ADO.NET 資料服務也可以讓您以應用程式可以使用的 XML 格式對 EDM 資料提供動態存取。這種實體資料可以使用標準具像狀態傳輸 (REST) HTTP 動作 (例如 GET、PUT 和 POST) 進行存取。如需詳細資訊,請參閱 ADO.NET 資料服務架構

建立使用 實體架構 的 Web 服務或 WCF 服務時請考量以下因素:

  • 完整圖形序列化支援二進位序列化和 DataContract 序列化。XML 序列化不會序列化相關物件。

  • 物件永遠是在 Detached 狀能進行序列化。您可能需要將物件附加或加入到 ObjectContext,或者只是將屬性變更套用到原始物件。如需詳細資訊,請參閱附加物件 (Entity Framework)

  • 建議採用無狀態服務。服務應設計成只在要求或回應期間維持物件內容。訊息交換模式應包括足夠的資訊,以便在套用變更時不必保存物件或重新查詢資料來源以擷取原始物件。舉例來講,允許用戶端更新物件的服務應該要求所更新的物件與原始物件一起傳回。這樣就能讓 Web 服務使用 ApplyPropertyChanges 方法將變更套用到原始物件,而不用從資料庫擷取原始物件或將它保存在記憶體中。如需詳細資訊,請參閱 HOW TO:套用對中斷連結的物件所做的變更 (Entity Framework)

另請參閱

概念

物件服務概觀 (Entity Framework)