EntityDataSource コントロールの構成
更新 : 2007 年 11 月
EntityDataSourceコントロールは、ADO.NET Entity Framework の Object Services コンポーネントを使用して、Entity Data Model (EDM) によって定義されるデータと ASP.NET Web アプリケーション内のコントロールのバインディングを単純化します。これにより、このコントロールを使用して、オブジェクト クエリを作成および実行し、EDM に定義されているエンティティ型のインスタンスである返されたオブジェクトにコントロールをバインドできます。詳細については、「Object Services の概要 (Entity Framework)」を参照してください。
EDM に接続して適切なエンティティ型を返すには、EntityDataSource コントロールのプロパティを構成する必要があります。ConnectionString プロパティと DefaultContainerName プロパティを設定すると、EntityDataSource コントロールは、オブジェクト クエリを実行するために使用する ObjectContext を作成できます。EntitySetName プロパティと EntityTypeFilter プロパティを設定する場合は、EntityDataSource コントロールが作成する ObjectQuery<T> の型を定義します。
メモ : |
---|
EntityDataSource コントロールを使用するには、アプリケーション内で EDM モデルおよびマッピング ファイルを含む DLL の参照と、ObjectContext およびエンティティ型を表すクラスを追加する必要があります。 |
接続文字列
EntityDataSource コントロールの ConnectionString プロパティは、アプリケーション構成ファイルの connectionStrings 要素に格納されている名前付き EDM 接続文字列を使用して初期化できます。Entity Data Model ウィザードを使用して EDM を作成すると、アプリケーション構成ファイルに名前付き EDM 接続が作成されます。この接続は、EntityDataSource デザイナのデータ ソースの構成ウィザードのオプションとして表示できます。詳細については、「データ ソースの構成ウィザード (EntityDataSource コントロール)」を参照してください。
オブジェクト コンテキスト
Object Services では、型指定された ObjectContext は、概念モデルのエンティティ コンテナを表します。ObjectContext クラスは、EDM によって定義されたデータをやり取りするための基本クラスです。このデータは、エンティティ型のインスタンスであるオブジェクトの形式で表されます。型指定された ObjectContext は、データベースへの接続、モデルを記述するメタデータ、および作成、更新、削除の各操作中にオブジェクトを追跡する ObjectStateManager オブジェクトをカプセル化します。EntityDataSource コントロールの ContextTypeName プロパティは、EntityDataSource コントロールが使用する型指定された ObjectContext の完全修飾型名を指定する文字列です。ContextTypeName プロパティを指定しない場合、EntityDataSource コントロールに対して DefaultContainerName プロパティと ConnectionString プロパティの両方を設定して、ObjectContext を作成する必要があります。EntityDataSource コントロールが使用する ObjectContext には、ContextType プロパティからアクセスできます。詳細については、「オブジェクト コンテキストの有効期間の管理 (EntityDataSource)」を参照してください。
エンティティ型
EDM では、エンティティ セットは、概念スキーマに定義されたエンティティ型の論理コンテナです。EntitySetName を介して EntityDataSource コントロールがアクセスするオブジェクトの型のエンティティ セットを指定できます。EntitySetName プロパティの値は、コントロールが使用する既定の SELECT ステートメントです。CommandText プロパティに指定された Entity SQL 式としてクエリが指定されている場合、設定は必要ありません。詳細については、「カスタム コマンド テキスト (EntityDataSource)」を参照してください。
EntityDataSource コントロールが特定の派生型を返す必要がある場合は、この派生型の名前を EntityTypeFilter プロパティに指定する必要があります。さまざまな結果を生成する可能性があるエンティティ セットを EntitySetName プロパティに指定する場合は、データを編集できるようにするために EntityTypeFilter プロパティが必要になります。EntityTypeFilter プロパティを設定することは、OfType<TResultType> メソッドを ObjectQuery<T> に適用することと同じです。データ バインディングが読み取り専用の場合、EntityTypeFilter プロパティは必要ありません。この場合、クエリから返されるオブジェクトのプロパティが、エンティティ セットの既定のエンティティ型のプロパティとなります。
参照
概念
データ ソースの構成ウィザード (EntityDataSource コントロール)
カスタム コマンド テキスト (EntityDataSource)