物件服務概觀 (Entity Framework)

物件服務是 Entity Framework 的元件,可讓您查詢、插入、更新及刪除資料 (這些資料表示為實體類型執行個體的強型別 CLR 物件)。物件服務支援 Language-Integrated Query (LINQ) 及針對概念模型定義之型別的 Entity SQL 查詢。物件服務會將傳回的資料具體化成物件,並將物件變更傳播回資料來源。它也會提供追蹤變更、將物件繫結至控制項及處理並行等機能。 物件服務是由 System.Data.Objects 和 System.Data.Objects.DataClasses 命名空間中的類別所實作。

物件內容

ObjectContext 類別為主要類別,與其互動的資料,其形式為概念模型中定義之實體類型執行個體的物件。ObjectContext 類別的執行個體會封裝下列項目:

  • 資料庫的連接 (以 EntityConnection 物件的形式)。

  • 描述模型的中繼資料 (以 MetadataWorkspace 物件的形式)。

  • 在建立、更新和刪除作業期間追蹤物件的 ObjectStateManager 物件。

Entity Framework 工具會使用概念結構定義語言 (CSDL) 檔案來產生物件層程式碼。此程式碼是用來搭配物件形式的實體資料使用,並利用物件服務功能。產生的程式碼包含下列資料類別:

  • 具型別 ObjectContext 類別。這個類別代表模型的 EntityContainer,且衍生自 ObjectContext。

  • 代表實體類型且衍生自 EntityObject 的類別。

  • 代表複雜類型且衍生自 ComplexObject 的類別。

注意事項注意事項:

ObjectContext 類別不具備執行緒安全。在多執行緒情況下無法確保 ObjectContext 中資料物件的完整性。

使用物件服務

物件服務支援下列針對 Entity Framework 進行程式設計的行為。

以物件形式查詢資料

物件服務可讓您使用 LINQ、Entity SQL 或查詢產生器方法,以便針對概念模型執行查詢,並將資料作為物件傳回。如需詳細資訊,請參閱物件查詢 (Entity Framework)

為查詢結果定形

根據預設,物件服務只會傳回查詢中特別要求的物件。當物件之間有關聯性存在時,您可以指定查詢是否會傳回相關物件。您也可以在稍後的要求中載入相關物件。如需詳細資訊,請參閱為查詢結果定形 (Entity Framework)

使用產生器方法撰寫查詢

物件服務會在 ObjectQuery 上提供一些方法,這些方法是用來建構相當於 Entity SQL 和 LINQ to Entities 查詢的查詢。如需詳細資訊,請參閱查詢產生器方法 (Entity Framework)

加入、變更及刪除物件

物件服務會將資料物件保存在記憶體中,並可讓您加入、修改及刪除物件內容中的物件。對物件進行的變更會由物件內容追蹤。如需詳細資訊,請參閱建立、加入、修改和刪除物件 (Entity Framework)

將變更儲存到資料來源

物件服務會將物件的變更快取在物件內容中。當明確要求時,物件服務會將那些變更儲存回資料來源。如需詳細資訊,請參閱儲存變更及管理並行存取 (Entity Framework)

將物件繫結到控制項

物件服務可讓您將物件繫結到支援資料繫結的控制項,例如 DataGridView 控制項。如需詳細資訊,請參閱將物件與控制項繫結 (Entity Framework)

附加物件

物件服務可讓您將現有的物件直接附加到物件內容。如此可讓您附加在 ASP.NET 應用程式的檢視狀態中所儲存的物件,或是已經從遠端方法呼叫或 Web 服務傳回的物件。如需詳細資訊,請參閱附加及中斷連結物件 (Entity Framework)

中斷連結物件

應用程式執行期間可能需要保存物件內容執行個體,例如當物件繫結到 Windows Form 控制項時。物件服務可讓您管理物件內容的大小,其方式是在物件不再需要時,中斷連結物件來釋出資源。如需詳細資訊,請參閱附加及中斷連結物件 (Entity Framework)

序列化物件

物件服務支援對物件進行 Windows Communication Foundation (WCF) 資料合約序列化、二進位序列化和 XML 序列化。資料合約序列化在 Web 服務案例中非常有用。當您使用檢視狀態將物件保存在 ASP.NET 應用程式中時,二進位序列化特別有用。如需詳細資訊,請參閱序列化物件 (Entity Framework)

管理物件識別及追蹤變更

物件服務會使用識別值來追蹤物件的變更、處理衝突,並決定何時要從資料來源擷取資料。如需詳細資訊,請參閱識別解析、狀態管理和變更追蹤 (Entity Framework)

管理並行

當一個或多個屬性 (Property) 的 ConcurrencyMode 屬性 (Attribute) 設定為 "fixed" 時,物件服務將能夠追蹤並行存取。 在此情況下,當偵測到並行違規時,物件服務將會引發特定的例外狀況。如需詳細資訊,請參閱儲存變更及管理並行存取 (Entity Framework)

管理連接

物件服務可讓您明確管理物件內容所用的連接,並針對物件內容提供您自己的連接。如需詳細資訊,請參閱管理連接和交易 (Entity Framework)

管理交易

物件服務支援 .NET Framework 交易,以針對資料來源協調作業,並在分散式交易中登記。如需詳細資訊,請參閱管理連接和交易 (Entity Framework)

搭配概念模型使用自訂物件

物件服務可讓您手動定義自己的物件,或是搭配概念模型使用現有物件。如需詳細資訊,請參閱自訂物件 (Entity Framework)

請參閱

概念

Entity Framework 概觀

其他資源

使用物件 (Entity Framework)