Entity-framework-overview

提供:Dev Guides
移動先:案内検索

Entity Framework-概要

Entity Frameworkとは何ですか?

Entity Frameworkは2008年に最初にリリースされました。これは、Microsoftが.NETアプリケーションとリレーショナルデータベースの間でやり取りするための主要な手段です。 Entity Frameworkはオブジェクトリレーショナルマッパー(ORM)です。これは、ソフトウェア内のオブジェクトからリレーショナルデータベースのテーブルおよび列へのマッピングを簡素化するツールの一種です。

  • Entity Framework(EF)は、.NET Frameworkの一部であるADO.NET用のオープンソースORMフレームワークです。
  • ORMは、データベース接続の作成とコマンドの実行、クエリ結果の取得、およびそれらの結果をアプリケーションオブジェクトとして自動的に具体化する処理を行います。
  • ORMは、これらのオブジェクトへの変更を追跡するのにも役立ちます。また、指示されると、それらの変更をデータベースに永続的に保持します。

Entity Frameworkを使用する理由

Entity FrameworkはORMであり、ORMは、アプリケーションで使用されるデータを保持する冗長なタスクを削減することにより、開発者の生産性を向上させることを目的としています。

  • Entity Frameworkは、データベース内のデータの読み取りまたは書き込みに必要なデータベースコマンドを生成し、それらを実行できます。
  • クエリを実行している場合、LINQ to entitiesを使用してドメインオブジェクトに対してクエリを表現できます。
  • Entity Frameworkは、データベースで関連するクエリを実行し、結果をドメインオブジェクトのインスタンスに具体化して、アプリ内で作業できるようにします。

NHibernateやLLBLGen Proなど、市場には他のORMがあります。 ほとんどのORMは通常、ドメインタイプをデータベーススキーマに直接マップします。

標準ORM

Entity Frameworkには、よりきめ細かなマッピングレイヤーがあるため、たとえば、単一のエンティティを複数のデータベーステーブルにマッピングしたり、複数のエンティティを単一のテーブルにマッピングしたりして、マッピングをカスタマイズできます。

EFランタイムメタデータ

  • Entity Frameworkは、新しいアプリケーション向けにマイクロソフトが推奨するデータアクセステクノロジーです。
  • ADO.NETは、データセットとデータテーブルのテクノロジを直接参照しているようです。
  • エンティティフレームワークは、すべての将来の投資が行われている場所であり、これは既に何年もの間そうでした。
  • マイクロソフトは、すべての新規開発のために、ADO.NETまたはLINQ to SQL上のEntity Frameworkを使用することをお勧めします。

概念モデル

データベース中心の開発に慣れている開発者にとって、Entity Frameworkの最大の変化は、ビジネスドメインに集中できることです。 データベースが実行できることによって制限されることなく、アプリケーションに実行させたいことは何ですか?

  • Entity Frameworkでは、フォーカルポイントは概念モデルと呼ばれます。 これは、アプリケーションデータの永続化に使用するデータベースのモデルではなく、アプリケーション内のオブジェクトのモデルです。
  • 概念モデルは、データベーススキーマと一致する場合もあれば、まったく異なる場合もあります。
  • ビジュアルデザイナーを使用して概念モデルを定義し、最終的にアプリケーションで使用するクラスを生成できます。
  • クラスを定義するだけで、Code FirstというEntity Frameworkの機能を使用できます。 そして、Entity Frameworkは概念モデルを理解します。

概念モデル

いずれにしても、Entity Frameworkは、概念モデルからデータベースに移行する方法を決定します。 したがって、概念モデルオブジェクトに対してクエリを実行し、それらを直接操作できます。

特徴

以下は、Entity Frameworkの基本機能です。 このリストは、最も注目に値する機能に基づいて作成され、Entity Frameworkに関するよくある質問からも作成されます。

  • Entity FrameworkはMicrosoftのツールです。
  • Entity Frameworkは、オープンソース製品として開発されています。
  • Entity Frameworkは、.NETリリースサイクルに関連付けられなくなり、依存しなくなりました。
  • 有効なEntity Frameworkプロバイダーを備えたリレーショナルデータベースで動作します。
  • LINQからエンティティへのSQLコマンド生成。
  • Entity Frameworkは、パラメーター化されたクエリを作成します。
  • インメモリオブジェクトへの変更を追跡します。
  • コマンド生成の挿入、更新、削除を許可します。
  • ビジュアルモデルまたは独自のクラスで動作します。
  • Entity Frameworkには、プロシージャサポートが格納されています。