設定 EntityDataSource 控制項
更新:2007 年 11 月
對於將 Entity Data Model(EDM) 所定義的資料繫結到 ASP.NET Web 應用程式中控制項的過程,EntityDataSource控制項能夠利用 ADO.NET Entity Framework 物件服務元件的優點,簡化這項繫結過程。這可以讓控制項撰寫並執行物件查詢,然後將控制項繫結到傳回的物件,而這些物件是 EDM 中定義之實體型別的執行個體。如需詳細資訊,請參閱物件服務概觀 (Entity Framework)。
必須將 EntityDataSource 控制項的屬性設定為可以連接到 EDM 並且傳回正確的實體型別。當您設定 ConnectionString 與 DefaultContainerName 屬性時,EntityDataSource 控制項可以建立要其本身要用於物件查詢的 ObjectContext。設定 EntitySetName 與 EntityTypeFilter 屬性時,您要定義 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 控制項的 DefaultContainerName 與 ConnectionString 屬性,才能建立 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 控制項)