物件服務概觀 (Entity Framework)
物件服務是 實體架構 的元件,可讓您查詢、插入、更新及刪除資料 (這些資料表示為實體類型執行個體的強型別 CLR 物件)。物件服務支援 Language-Integrated Query (LINQ) 及針對 實體資料模型 (EDM) 中定義之型別發出的 實體 SQL 查詢。物件服務會將傳回的資料具體化成物件,並將物件變更傳回資料來源。它也會提供追蹤變更、將物件繫結至控制項及處理並行等機能。物件服務是由 System.Data.Objects 和 System.Data.Objects.DataClasses 命名空間中的類別所實作。
物件內容
ObjectContext 類別是與 EDM 中定義之實體類型執行個體的物件形式的資料互動的主要類別。ObjectContext 類別的執行個體會封裝下列項目:
資料庫的連接 (以 EntityConnection 物件的形式)。
描述模型的中繼資料 (以 MetadataWorkspace 物件的形式)。
在建立、更新和刪除作業期間追蹤物件的 ObjectStateManager 物件。
實體架構 工具會使用概念結構定義語言 (CSDL) 檔案來產生物件層程式碼。此程式碼是用來搭配物件形式的實體資料使用,並利用物件服務功能。產生的程式碼包含下列資料類別:
具型別 ObjectContext 類別。這個類別代表模型的 EntityContainer,且衍生自 ObjectContext。
代表實體類型且衍生自 EntityObject 的類別。
代表複雜類型且衍生自 ComplexObject 的類別。
附註 |
---|
ObjectContext 類別不具備執行緒安全。在多執行緒情況下無法確保 ObjectContext 中資料物件的完整性。 |
使用物件服務
物件服務支援下列針對 實體架構 進行程式設計的行為。
以物件形式查詢資料
物件服務可讓您使用 LINQ、實體 SQL 或查詢產生器方法,以便針對 實體資料模型 執行查詢,並將資料當做物件傳回。如需詳細資訊,請參閱物件查詢 (Entity Framework)。
為查詢結果定形
根據預設,物件服務只會傳回查詢中特別要求的物件。當物件之間有關聯性存在時,您可以指定查詢是否會傳回相關物件。您也可以在稍後的要求中載入相關物件。如需詳細資訊,請參閱為查詢結果定形 (Entity Framework)。
使用產生器方法撰寫查詢
物件服務會在 ObjectQuery 上提供一些方法,這些方法是用來建構相當於 實體 SQL 和 LINQ 到實體 查詢的查詢。如需詳細資訊,請參閱查詢產生器方法 (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 Data Model 使用自訂物件
物件服務可讓您手動定義自己的物件,或是搭配 實體資料模型 使用現有的物件。如需詳細資訊,請參閱自訂物件 (Entity Framework)。