共用方式為


設定 EntityDataSource 控制項

更新:2007 年 11 月

對於將 Entity Data Model(EDM) 所定義的資料繫結到 ASP.NET Web 應用程式中控制項的過程,EntityDataSource控制項能夠利用 ADO.NET Entity Framework 物件服務元件的優點,簡化這項繫結過程。這可以讓控制項撰寫並執行物件查詢,然後將控制項繫結到傳回的物件,而這些物件是 EDM 中定義之實體型別的執行個體。如需詳細資訊,請參閱物件服務概觀 (Entity Framework)

必須將 EntityDataSource 控制項的屬性設定為可以連接到 EDM 並且傳回正確的實體型別。當您設定 ConnectionStringDefaultContainerName 屬性時,EntityDataSource 控制項可以建立要其本身要用於物件查詢的 ObjectContext。設定 EntitySetNameEntityTypeFilter 屬性時,您要定義 EntityDataSource 控制項會撰寫的 ObjectQuery<T> 型別。

注意事項:

若要使用 EntityDataSource 控制項,必須將應用程式中的參考加入到包含 EDM 模型與對應檔案的 DLL 以及代表的 ObjectContext類別與實體型別。

連接字串

您可以從儲存於應用程式設定檔中 connectionStrings 項目的具名 EDM 連接字串,初始化 EntityDataSource 控制項的 ConnectionString 屬性。使用 Entity Data Model 精靈建立 EDM 時,可以在應用程式組態檔中建立具名的 EDM 連接。接著,您可以在設計工具的 [設定資料來源] 精靈中,以選項的方式檢視這個連接。如需詳細資訊,請參閱設定資料來源精靈 (EntityDataSource 控制項)

物件內容

在物件服務中,具型別 ObjectContext 代表概念模型的實體容器。ObjectContext 類別為使用 EDM 所定義之資料的主要類別。這個資料的呈現形式為,實體型別之執行個體的物件。具型別的 ObjectContext 會將連接封裝為資料庫、說明模型的中繼資料,以及會在建立、更新及刪除作業期間,追蹤物件的 ObjectStateManager 物件。EntityDataSource 控制項的 ContextTypeName 屬性為字串,可以指定具型別之 ObjectContext (EntityDataSource 控制項會使用這個項目) 的完整型別名稱。如果沒有指定 ContextTypeName 屬性,必須同時設定 EntityDataSource 控制項的 DefaultContainerNameConnectionString 屬性,才能建立 ObjectContext。您可以存取 EntityDataSource 控制項透過 ContextType 屬性使用的 ObjectContext。如需詳細資訊,請參閱物件內容生命週期管理 (EntityDataSource)

實體型別

在 EDM 中,實體集為定義於概念結構描述中實體型別的邏輯容器。對於 EntityDataSource 控制項透過 EntitySetName 存取的物件,您可以指定型別的實體集。EntitySetName 屬性的值為控制項會使用的預設 SELECT 陳述式。如果查詢指定為提供給 CommandText 屬性的 Entity SQL 運算式,則不需要進行設定。如需詳細資訊,請參閱 自訂命令文字 (EntityDataSource)

EntityDataSource 控制項必須傳回特定的衍生型別,您也必須在 EntityTypeFilter 屬性中指定該衍生型別的名稱。如果 EntitySetName 屬性指定一個可以產生多型結果多的實體集,則 EntityTypeFilter 屬性必須要能夠編輯資料。設定 EntityTypeFilter 屬性的作用與對 ObjectQuery<T> 套用 OfType<TResultType> 方法相同。如果資料繫結為唯讀的,那麼則不需要 EntityTypeFilter 屬性。在這個情況下,查詢所傳回的物件屬性,將會是實體集預設實體型別的屬性。

請參閱

概念

EntityDataSource 設計工具

設定資料來源精靈 (EntityDataSource 控制項)

自訂命令文字 (EntityDataSource)

其他資源

物件查詢 (Entity Framework)