ADO.NET の新機能

以下の機能は、.NET Framework Version 4 で ADO.NET に新たに追加されたものです。

ADO.NET Entity Framework

Entity Framework は、エンティティとリレーションシップで定義されたデータ モデルに対してプログラミングできるようにする技術です。これによって、データドリブン アプリケーションに必要なコーディングと保守作業が軽減されます。詳細については、「Entity Framework Overview」を参照してください。

.NET Framework 4 の Entity Framework には、次の機能が追加されています。

概念モデルの外部キー

データベースの外部キー列がエンティティ型のスカラー プロパティに対応する概念モデルを作成できます。詳細については、「Defining and Managing Relationships」を参照してください。

N 層アプリケーション開発用の自己追跡エンティティ

N 層アプリケーションの開発時に、自己追跡エンティティを使用できるようになりました。自己追跡エンティティは、スカラー プロパティ、複合プロパティ、およびナビゲーション プロパティに対する変更を記録できます。自己追跡オブジェクトの追跡情報は、サービス側のオブジェクト コンテキストに適用できます。詳細については、「Working with Self-Tracking Entities」を参照してください。

N 層アプリケーション開発用の新しいメソッド

System.Data.Objects 名前空間のクラスに新しいメソッドが追加され、N 層アプリケーションを容易に開発できるようになりました。詳細については、「N-Tier Applications With Entity Framework」を参照してください。

EntityDataSource による QueryExtender コントロールのサポート

EntityDataSource コントロールで QueryExtender コントロールがサポートされるようになりました。この新しいコントロールを使用して、データ ソースから取得するデータのフィルターを作成します。詳細については、「EntityDataSource への LINQ クエリの適用」を参照してください。

IObjectSet<T> によるテスト容易性

ObjectContext クラスが型指定された ObjectSet<TEntity> オブジェクトを返すようになりました。このオブジェクトを使用すれば、エンティティ オブジェクトに対して作成、読み取り、更新、削除の各操作を実行できます。ObjectSet<TEntity> クラスは、IObjectSet<TEntity> インターフェイスを実装します。IObjectSet<TEntity> インターフェイスはシナリオのテストに役立つ場合があります。詳細については、「Working with ObjectSet」を参照してください。

格納コマンドの直接実行

ObjectContext から格納コマンドを直接実行できるようになりました。詳細については、「Directly Executing Store Commands」を参照してください。

永続化に依存しないオブジェクト

データ クラス自体を変更することなく、独自のカスタム データ クラスとデータ モデルを一緒に使用できます。つまり、既存のドメイン オブジェクトなどの POCO ("plain old" CLR object) を Entity Framework アプリケーションで使用できます。詳細については、「Persistence Ignorant Objects (Entity Framework)」を参照してください。

関連オブジェクトの遅延読み込み

遅延読み込みを使用すると、ナビゲーション プロパティにアクセスした時点でデータ ソースから関連オブジェクトが自動的に読み込まれます。詳細については、「Shaping Query Results (Entity Framework)」を参照してください。

LINQ to Entities クエリ内の関数

EntityFunctions クラスおよび SqlFunctions クラスを使用すると、LINQ to Entities クエリから正規関数およびデータベース関数にアクセスできます。EdmFunctionAttribute を使用すると、CLR メソッドを、概念モデルまたはストレージ モデルで定義されている関数に対するプロキシとして使用できます。詳細については、「Calling Functions in LINQ to Entities Queries」を参照してください。

LINQ to Entities での OrderBy の機能強化

OrderBy 演算子を含む LINQ to Entities クエリを実行したとき、LINQ to Entities クエリ内での 演算子の位置にかかわらず、この演算子で指定した引数の順番で結果が返されるようになりました。ただし、Entity SQL および ObjectQuery<T> クエリ内の OrderBy 演算子は、そのクエリ内で最後の演算子でない限り無視されます。

カスタマイズしたオブジェクト レイヤー コードの生成

ADO.NET Entity Data Model デザイナーを、テキスト テンプレートを使用してカスタマイズしたオブジェクト レイヤー コードを生成するように構成できます。詳細については、「How to: Customize Object-Layer Code Generation」を参照してください。

モデルファーストのサポート

Generate Database Wizardでは、最初に概念モデルを作成し、次にそのモデルをサポートするデータベースを作成できます。詳細については、「How to: Generate a Database from a Conceptual Model」を参照してください。

複合型のサポート

ADO.NET Entity Data Model Designerでは複合型をサポートするようになりました。詳細については、次のトピックを参照してください。

ネーム サービス

Entity Data Model WizardおよびUpdate Model Wizardでは、アプリケーション コードの可読性を高めるため、Entity、EntitySet、NavigationProperty の名前を単数形で表すか、複数形で表すかを選択できます。詳細については、「Choose Your Database Objects Dialog Box (Entity Data Model Wizard)」および「Choose Your Database Objects Dialog Box (Update Model Wizard)」を参照してください。

モデル ブラウザー機能の強化

ADO.NET Entity Data Model Designer[モデル ブラウザー] ウィンドウでは、ストレージ モデルからオブジェクトを削除したり、指定された文字列の概念モデルおよびストレージ モデルを検索したりできます。詳細については、「Model Browser Window」および「How to: Delete Objects from the Storage Model」を参照してください。

エンティティ デザイナーの機能拡張

Microsoft.Data.Entity.Design.Extensibility 名前空間のクラスを使用して Visual Studio 拡張機能を記述することにより、ADO.NET Entity Data Model ツールの機能を拡張できます。Microsoft.Data.Entity.Design.Extensibility 名前空間のクラスで次のことができます。

  • .edmx ファイルの生成処理を拡張します。

  • .edmx ファイルの更新処理を拡張します。

  • エンティティ デザイナーおよびモデル ブラウザーのオブジェクトに、カスタム プロパティを追加します。

  • カスタム ファイル形式の読み込みおよび保存を行います。

  • .edmx ファイルの読み込みおよび保存の処理を拡張します。

詳細については、「Extending the Entity Data Model Tools」を参照してください。

Entity Data Model のドキュメント

Entity Data Model のドキュメントが更新されました。詳細については、「Entity Data Model」を参照してください。

参照

その他の技術情報

ADO.NET

ADO.NET の概要

SQL Server と ADO.NET

What's New in WCF Data Services