分享方式:


Entity Framework 的 EntityClient 提供者

EntityClient 提供者是 Entity Framework 應用程式用來存取概念模型中所描述之資料的資料提供者。 如需概念模型的相關資訊,請參閱模型化和對應。 EntityClient 會使用其他 .NET Framework 資料提供者來存取資料來源。 例如,EntityClient 會在存取 SQL Server 資料庫時使用 .NET Framework Data Provider for SQL Server (SqlClient)。 如需 SqlClient 提供者的相關資訊,請參閱 Entity Framework 的 SqlClient。 EntityClient 提供者是在 System.Data.EntityClient 命名空間 (Namespace) 中實作的。

管理連線

Entity Framework 會將 EntityConnection 提供給基礎資料提供者和關聯式資料庫,而將儲存專用的 ADO.NET 資料提供者作為建置基礎。 若要建構 EntityConnection 物件,您必須參考包含必要模型與對應的中繼資料集,以及儲存體專用資料提供者和連接字串。 備妥 EntityConnection 之後,便可透過從概念模型產生的類別存取實體。

您可以在 app.config 檔案中指定連接字串。

System.Data.EntityClient 也包含 EntityConnectionStringBuilder 類別。 這個類別可讓開發人員使用此類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。

建立查詢

Entity SQL 語言是與儲存體無關的 SQL Dialect,可直接配合概念實體結構描述運作,並支援實體資料模型概念 (如繼承與關聯性)。 EntityCommand 類別是用來針對實體模型執行 Entity SQL 命令。 建構 EntityCommand 物件時,您可以指定預存程序名稱或查詢文字。 Entity Framework 可與儲存體專屬資料提供者搭配使用,將泛型 Entity SQL 轉譯為儲存體專屬的查詢。 如需撰寫 Entity SQL 查詢的詳細資訊,請參閱 Entity SQL 語言

以下範例會建立 EntityCommand 物件並且將 Entity SQL 查詢文字指派給它的 EntityCommand.CommandText 屬性。 這個 Entity SQL 查詢會從概念模型要求依定價排序的產品。 下列程式碼完全不了解儲存模型的相關資訊。

EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
 FROM AdventureWorksEntities.Product AS p
 ORDER BY p.ListPrice";

執行查詢

執行查詢時,會先剖析查詢然後將它轉換成標準命令樹。 所有後續的查詢處理都是在此命令樹上執行。 命令樹是 System.Data.EntityClient 與基礎 .NET Framework Data Provider (例如 System.Data.SqlClient) 之間的通訊方式。

EntityDataReader 會公開針對概念模型執行 EntityCommand 的結果。 若要執行可傳回 EntityDataReader 的命令,請呼叫 ExecuteReaderEntityDataReader 會實作 IExtendedDataRecord 來描述豐富的結構化結果。

管理交易

Entity Framework 中有兩種使用異動的方式:自動與明確。 自動交易會使用 System.Transactions 命名空間,而明確交易會使用 EntityTransaction 類別。

若要更新透過概念模型公開的資料,請參閱 作法:管理 Entity Framework 中的交易

本節內容

如何:執行可傳回 PrimitiveType 結果的查詢

如何:執行可傳回 StructuralType 結果的查詢

如何:執行可傳回 RefType 結果的查詢

如何:執行可傳回複雜類型的查詢

如何:執行可傳回巢狀集合的查詢

如何:使用 EntityCommand 執行參數化 Entity SQL 查詢

如何:使用 EntityCommand 執行參數化預存程序

如何:執行多型查詢

如何:使用 Navigate 運算子導覽關聯性

另請參閱