Entity Framework 的 EntityClient 提供者

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

管理連接

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

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

System.Data.EntityClient 也包含 EntityConnectionStringBuilder 類別。這個類別可讓開發人員使用此類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。如需詳細資訊,請參閱 HOW TO:建立 EntityConnection 連接字串 (Entity Framework)

建立查詢

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

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

EntityCommand cmd = conn.CreateCommand();

cmd.CommandText = @"``SELECT VALUE p

FROM AdventureWorksEntities.Product AS p

ORDER BY p.ListPrice ";

執行查詢

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

EntityDataReader 會公開針對 EDM 執行 EntityCommand 的結果。若要執行可傳回 EntityDataReader 的命令,請呼叫 ExecuteReaderEntityDataReader 會實作 IExtendedDataRecord 來描述豐富的結構化結果。如需詳細資訊,請參閱 How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework)

管理交易

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

您無法使用 EntityCommand 語法來更新透過 Entity Data Model (EDM) 所公開的資料,必須使用物件服務。如需使用物件服務來更新資料的詳細資訊,請參閱 HOW TO:管理物件服務交易 (Entity Framework)

另請參閱

其他資源

管理連接和交易 (Entity Framework 工作)
ADO.NET Entity Framework
Entity Framework 工作
功能參考 (Entity Framework)
物件服務 (Entity Framework)