ホームページ  >  記事  >  バックエンド開発  >  エンティティ フレームワーク C#

エンティティ フレームワーク C#

王林
王林オリジナル
2024-09-03 15:20:001092ブラウズ

次の記事では、Entity Framework C# の概要を説明します。 Entity Framework は、アプリケーション内の冗長なジョブを排除することでユーザーのアプリの生産性を向上させるオブジェクト リレーショナル マッピング (ORM) です。 EF は、DB 内のデータの書き込みまたは読み取りに必要な DB コマンドを構築し、それらを完全に実行します。最後に、EF は DB でクエリを実行し、結果をアプリケーションで動作するドメイン オブジェクトに作成します。

C# の Entity Framework とは何ですか?

Entity Framework は、.Net アプリケーション用のオブジェクト ソース リレーショナル マッピング (ORM) フレームワークです。これにより、開発者は、データベースの列やテーブルの知識がなくても、ドメイン固有のオブジェクトを使用してリレーショナル データを操作できます。データが保存されます。さらに、Entity Framework によって、開発者が通常作成するデータ アクセスのコードが最小限に抑えられることが示されています。

C# プロジェクトの Entity Framework

Department テーブルと Employee テーブルのテーブルには、複数の部門とさまざまな部門の従業員のレコードが含まれていると考えてみましょう。

これを達成するには、Department クラスと Employee クラスを構築する必要があります。次に、データベースからそれらのデータを取得するには、ADO.NET をコーディングする必要があります。最後に、データが取得されたら、従業員と部門のオブジェクトを作成して、復元されたデータを入力する必要があります。
上記の作業はすべて面倒ですが、Entity Framework を使用すると簡単です。それらのことは自動的に行うことができます。 DB スキーマを EF に提供する必要があります。 EF を使用してアプリケーションを作成する次の手順を見てみましょう。

データベース スキーマを作成するには、SQL スクリプトを使用してデータベース EF_Demo_DB を作成し、従業員と部門のテーブルも作成します

コード:

-- to create the Database EF_Demo_DB
CREATE DATABASE EF_Demo_DB;
GO
-- Use EF_Demo_DB database
USE EF_Demo_DB;
GO
-- to Create the table Departments
CREATE TABLE Departments
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Location VARCHAR(50)
)
Go
-- to Create the table Employees
CREATE TABLE Employees
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Email VARCHAR(50),
Gender VARCHAR(50),
Salary INT,
DepartmentId INT FOREIGN KEY REFERENCES Departments(ID)
)
Go
-- --to Populate the table with few records
INSERT INTO Departments VALUES ('HR', 'Bangalore')
INSERT INTO Departments VALUES ('Sales', 'Cochin')
INSERT INTO Departments VALUES ('IT', 'Chennai')
Go
--to Populate the table with few records
INSERT INTO Employees VALUES ('Philip', '[email protected]', 'Male', 45000, 2)
INSERT INTO Employees VALUES ('Mary', '[email protected]', 'Female', 30000, 2)
INSERT INTO Employees VALUES ('Valarie', '[email protected]', 'Female', 35000, 3)
INSERT INTO Employees VALUES ('John', '[email protected]', 'Male', 80000, 1)
INSERT INTO Employees VALUES ('Joseph', 'jojog.com', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Steve', '[email protected]', 'Male', 45000, 3)
INSERT INTO Employees VALUES ('Peter', '[email protected]', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Rio', '[email protected]', 'Female', 345000, 3)
INSERT INTO Employees VALUES ('Ben', '[email protected]', 'Male', 70000, 1)
Go

コンソール アプリケーションを作成するには

データの準備ができたら、以下に示すように EFDemo という名前で新しいコンソール アプリケーションを作成します。

エンティティ フレームワーク C#

ADO.NET エンティティ データ モデルを追加するには

コンソール アプリケーションを作成するには、ADO.NET Entity Data Model を追加し、プロジェクトを右クリックして、[Add -New Items-Data-ADO.NET Entity Data Model] を選択し、以下に示すように名前を EmployeeDataModel にします。

エンティティ フレームワーク C#

[追加] ボタンをクリックしたら、データベースから EF デザイナーを選択し、以下に示すように [次へ] ボタンをクリックしてデータベースから EF デザイナーを選択します。ここでは、EF Database First Approach を使用しています。

エンティティ フレームワーク C#

[次へ] ボタンをクリックすると、図に示すようにデータ接続ウィザードを選択するよう求められます。 [新しい接続] ボタンをクリックします。

エンティティ フレームワーク C#

その [新しい接続] ボタンをクリックしたら、必要なデータベースの詳細を入力し、最後に「接続をテスト」して [OK] をクリックします。

エンティティ フレームワーク C#

データ接続を選択し、エンティティ接続設定をアプリに保存します。次に、以下に示すように設定し、名前を EF_Demo_DBEntities にして、[次へ] ボタンをクリックします。

エンティティ フレームワーク C#

ここでは、図のように Entity Framework 6.x を選択し、[次へ] ボタンを選択するように求められます。

エンティティ フレームワーク C#

必要なテーブルを選択し、モデル ネームスペースを「EmployeeModel」に変更し、図に示すように [完了] ボタンをクリックします。

エンティティ フレームワーク C#

「完了」ボタンをクリックすると、EmployeeDataModel.edmx ファイルが生成されます。

エンティティ フレームワーク C#

これは、以下に示す EDMX ファイルの構造です。

エンティティ フレームワーク C#

EF を使用して、アプリケーションを作成しました。

コード:

namespace EFDemo
{
class Program
{
static void Main(string[] args)
{
using (EF_Demo_DBEntities DBEntities = new EF_Demo_DBEntities())
{
List<Department> listDepartments = DBEntities.Departments.ToList();
Console.WriteLine();
foreach (Department dept in listDepartments)
{
Console.WriteLine(" Department = {0}, Location = {1}", dept.Name, dept.Location);
foreach (Employee emp in dept.Employees)
{
Console.WriteLine("\t Name = {0}, Email = {1}, Gender = {2}, salary = {3}",
emp.Name, emp.Email, emp.Gender, emp.Salary);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
}

データベースモードとクラス

Entity Framework の機能:

Entity Framework の機能を見てみましょう:

  • モデリング: EF は、さまざまなデータ型の get/set プロパティを持つ属性に基づいて EDM を構築します。エンティティ データをデータベースに保存またはクエリする場合は、モデルを使用します。
  • クエリ: Entity Framework を使用すると、LINQ クエリでデータベースからデータを取得できます。 DB プロバイダーは、LINQ のクエリを DB 固有のクエリ言語に変換します。 EF を使用すると、DB に対する SQL クエリを実行できます。
  • 変更追跡: Entity Framework は、DB に送信する必要があるプロパティ値のケースに発生した変更を追跡します。
  • 保存: Entity Framework は、SaveChanges() メソッドの呼び出し中にエンティティの変更に基づいて、データベースに対して INSERT、DELETE、および UPDATE のコマンドを実行します。さらに、エンティティ フレームワーク EF は SaveChangesAsync() メソッドを提供します。
  • 同時実行性: データが DB からフェッチされたため、Entity Framework はデフォルトでオプティミスティック同時実行性を使用して、別のユーザーによる変更を保護します。
  • キャッシュ: Entity Framework には、すぐに使える初期レベルのキャッシュが含まれています。したがって、クエリは DB にアクセスするのではなく、キャッシュからデータを返します。
  • 構成: Entity Framework では、データ アノテーション属性または API を使用して EF モデルを構成し、既定で規則をオーバーライドできます。
  • 組み込み規則: Entity Framework はプログラミング構成パターンを通じて規則に従い、EF モデルを自動的に構成するデフォルトのルールが含まれています。

結論

この記事では、EF の機能と Entity Framework の作成方法について説明しました。ただし、ADO.NET コードの使用は、EF と比較すると面倒です。また、これは時間がかかり、エラーが発生しやすいプロセスであるため、Microsoft はアプリケーションの DB 関連作業全体を自動化する Entity Framework と呼ばれるフレームワークを提供しています。

以上がエンティティ フレームワーク C#の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。