エンティティフレームワーク-概要
Entity Frameworkとは何ですか?
Entity Frameworkは、2008年に最初にリリースされました。これは、.NETアプリケーションとリレーショナルデータベースの間でやり取りするMicrosoftの主要な手段です。Entity Frameworkは、オブジェクトリレーショナルマッパー(ORM)であり、ソフトウェア内のオブジェクトからリレーショナルデータベースのテーブルおよび列へのマッピングを簡素化するツールの一種です。
Entity Framework(EF)は、.NETFrameworkの一部であるADO.NET用のオープンソースORMフレームワークです。
ORMは、データベース接続の作成とコマンドの実行、およびクエリ結果の取得と、それらの結果をアプリケーションオブジェクトとして自動的に実体化する処理を行います。
ORMは、これらのオブジェクトへの変更を追跡するのにも役立ち、指示されると、それらの変更をデータベースに保持します。
なぜEntityFrameworkなのか?
Entity FrameworkはORMであり、ORMは、アプリケーションで使用されるデータを永続化するという冗長なタスクを減らすことで、開発者の生産性を向上させることを目的としています。
Entity Frameworkは、データベース内のデータの読み取りまたは書き込みに必要なデータベースコマンドを生成し、それらを実行できます。
クエリを実行している場合は、LINQ toエンティティを使用して、ドメインオブジェクトに対するクエリを表現できます。
Entity Frameworkは、データベース内の関連するクエリを実行し、結果をドメインオブジェクトのインスタンスにマテリアライズして、アプリ内で作業できるようにします。
NHibernateやLLBLGenProなどの他のORMが市場にあります。ほとんどのORMは通常、ドメインタイプをデータベーススキーマに直接マップします。
Entity Frameworkには、より詳細なマッピングレイヤーがあるため、たとえば、単一のエンティティを複数のデータベーステーブルにマッピングしたり、複数のエンティティを単一のテーブルにマッピングしたりして、マッピングをカスタマイズできます。
Entity Frameworkは、Microsoftが推奨する新しいアプリケーションのデータアクセステクノロジです。
ADO.NETは、データセットとデータテーブルのテクノロジを直接参照しているようです。
Entity Frameworkは、すべての前向きな投資が行われている場所です。これは、すでに何年にもわたって当てはまります。
すべての新しい開発には、ADO.NETまたはLINQ toSQLを介したEntityFrameworkを使用することをお勧めします。
概念モデル
データベースに焦点を当てた開発に慣れている開発者にとって、Entity Frameworkの最大の変化は、ビジネスドメインに焦点を当てることができることです。データベースが実行できることによって制限されることなく、アプリケーションに実行させたいことは何ですか?
Entity Frameworkでは、フォーカルポイントは概念モデルと呼ばれます。これは、アプリケーション内のオブジェクトのモデルであり、アプリケーションデータを永続化するために使用するデータベースのモデルではありません。
概念モデルがデータベーススキーマと一致する場合もあれば、まったく異なる場合もあります。
Visual Designerを使用して概念モデルを定義すると、最終的にアプリケーションで使用するクラスを生成できます。
クラスを定義して、CodeFirstと呼ばれるEntityFrameworkの機能を使用できます。そして、EntityFrameworkは概念モデルを理解します。
いずれにせよ、Entity Frameworkは、概念モデルからデータベースに移行する方法を決定します。したがって、概念モデルオブジェクトに対してクエリを実行し、それらを直接操作できます。
特徴
以下は、EntityFrameworkの基本的な機能です。このリストは、最も注目すべき機能に基づいて作成されており、EntityFrameworkに関するよくある質問からも作成されています。
- EntityFrameworkはMicrosoftのツールです。
- Entity Frameworkは、オープンソース製品として開発されています。
- Entity Frameworkは、.NETリリースサイクルに関連付けられたり依存したりしなくなりました。
- 有効なEntityFrameworkプロバイダーを備えた任意のリレーショナルデータベースで動作します。
- LINQからエンティティへのSQLコマンドの生成。
- Entity Frameworkは、パラメーター化されたクエリを作成します。
- インメモリオブジェクトへの変更を追跡します。
- コマンド生成を挿入、更新、および削除できます。
- ビジュアルモデルまたは独自のクラスで動作します。
- EntityFrameworkにはプロシージャサポートが保存されています。