paint-brush
EF Core の移行: 開始するためのステップバイステップ ガイド@ssukhpinder
4,258 測定値
4,258 測定値

EF Core の移行: 開始するためのステップバイステップ ガイド

Sukhpinder Singh8m2023/03/09
Read on Terminal Reader

長すぎる; 読むには

EF Core は、開発者がデータベースを操作できるようにするオブジェクト リレーショナル マッピング (ORM) フレームワークです。 EF Core の重要な機能の 1 つは、データベースの移行を処理する機能です。この記事では、EF Core の移行、移行が重要な理由、移行の使用方法について、例を挙げて説明します。
featured image - EF Core の移行: 開始するためのステップバイステップ ガイド
Sukhpinder Singh HackerNoon profile picture

Entity Framework Core (EF Core) は、開発者が .NET オブジェクトを使用してデータベースを操作できるようにするオブジェクト リレーショナル マッピング (ORM) フレームワークです。 EF Core の重要な機能の 1 つは、データベースの移行を処理する機能です。

前提条件

  • 基本的な C# プログラミング言語の知識。
  • 基本的な OOPS の概念の理解


この記事では、EF Core の移行、移行が重要な理由、移行の使用方法について例を挙げて説明します。だから、始めるために:


C# 入門


C# はかなり前から存在しており、さらに拡張された機能を獲得しながら開発を続けています。 medium.com

学習目標

  • 例を使用して EF Core 移行を使用する方法。


  • EF Core の移行が重要な理由

入門

EF Core 移行は、データベース スキーマへの変更を経時的に管理する方法です。データベース モデルに変更を加える場合 (テーブルや列の追加や削除など)、それらの変更を説明する移行を作成できます。


その後、移行を使用してデータベース スキーマを更新し、新しいモデルに一致させます。

EF Core の移行が重要な理由

EF Core 移行は、データを保持しながらデータベース スキーマを徐々に進化させることができるため、不可欠です。


移行がなければ、モデルに変更を加えるたびにデータベース スキーマを手動で変更する必要があり、時間がかかり、エラーが発生しやすくなります。


移行では、データベース スキーマのバージョンを管理する方法も提供されるため、変更を簡単に追跡し、必要に応じて以前のバージョンにロールバックできます。

EF Core 移行の使用方法

EF Core 移行を使用するには、いくつかの手順に従う必要があります。


  1. 新しい EF Core プロジェクトを作成します。最初の手順は、Visual Studio で新しい EF Core プロジェクトを作成することです。これを行うには、[新しいプロジェクトの作成] を選択し、[ASP.NET Core Web アプリケーション] を選択して、[Web アプリケーション (モデル-ビュー-コントローラー)] テンプレートを選択します。


  2. データベース コンテキストを作成します。次のステップは、データベース コンテキスト クラスを作成することです。このクラスは、.NET オブジェクトとデータベース間の対話を管理します。データベース コンテキストを作成するには、プロジェクトに新しいクラスを作成し、DbContext クラスから継承します。


 public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }


データベース モデルの作成

データベース コンテキストを作成したら、データベース モデルを作成する必要があります。このモデルはデータベースの構造を表し、データベース テーブルと列を生成するために EF Core によって使用されます。


データベース モデルを作成するには、プロジェクトに新しいクラスを作成し、そのプロパティをデータベース フィールドとして定義します。


 public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }


EF Core 移行を有効にする

次に、プロジェクトで EF Core 移行を有効にする必要があります。これを行うには、パッケージ マネージャー コンソールを開き、次のコマンドを入力します。


 PM> Install-Package Microsoft.EntityFrameworkCore.Tools


このパッケージには、EF Core 移行の作成と管理に必要なツールが含まれています。


移行を作成する

EF Core 移行を有効にすると、最初の移行を作成できます。移行を作成するには、パッケージ マネージャー コンソールを開き、次のコマンドを入力します。


 PM> Add-Migration InitialCreate


これにより、データベース モデルに加えた変更を記述する "InitialCreate" という名前の新しい移行が作成されます。移行の内容は、プロジェクトの「Migrations」フォルダーで確認できます。


データベースを更新する

移行を作成したら、新しいモデルに一致するようにデータベース スキーマを更新できます。これを行うには、パッケージ マネージャー コンソールを開き、次のコマンドを入力します。


 PM> Update-Database


これにより、移行がデータベースに適用され、そのスキーマが更新されます。

EF Core 移行の使用例を見てみましょう。 「Id」と「Name」の 2 つの列を持つ単純な「Students」テーブルを作成するとします。まず、Visual Studio で新しい ASP.NET Core Web アプリケーション プロジェクトを作成します。


  1. 新しい EF Core プロジェクトを作成します。 Visual Studio で新しい ASP.NET Core Web アプリケーション プロジェクトを作成します。 「Web Application (Model-View-Controller)」テンプレートを選択し、認証に「Individual User Accounts」を選択します。プロジェクトに「EFCoreMigrationsExample」という名前を付けます。


  2. データベース コンテキストを作成します。プロジェクトの「モデル」フォルダーに「MyDbContext」という新しいクラスを作成し、DbContext クラスから継承します。


 using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }


"Students" プロパティは、データベースの "Students" テーブルを表す DbSet です。


データベース モデルの作成

プロジェクトの "Models" フォルダーに新しい "Student" クラスを作成し、そのプロパティを定義します。

 namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }


EF Core 移行を有効にする

パッケージ マネージャー コンソールを開き、次のコマンドを入力して EF Core ツール パッケージをインストールします。

 PM> Install-Package Microsoft.EntityFrameworkCore.Tools


移行を作成する

パッケージ マネージャー コンソールを開き、次のコマンドを入力して移行を作成します。

 PM> Add-Migration InitialCreate


これにより、データベース モデルに加えた変更を記述する "InitialCreate" という新しい移行が作成されます。


移行ファイルは次のようになります。

 using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }


移行により、「Id」と「Name」の列を持つ「Students」という新しいテーブルが作成されます。

データベースを更新する パッケージ マネージャー コンソールを開き、次のコマンドを入力してデータベース スキーマを更新します。


 PM> Update-Database


これにより、移行がデータベースに適用され、そのスキーマが更新されます。


これで、EF Core を使用して、データベース内の学生を追加、更新、および削除できるようになりました。たとえば、次のように新しい学生をデータベースに追加できます。

 using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }


このコードは、Student クラスの新しいインスタンスを作成し、その Name プロパティを "John" に設定します。次に、学生を Students DbSet に追加し、変更をデータベースに保存します。

結論

EF Core 移行は、アプリケーションでデータベース スキーマの変更を管理するための便利な方法を提供します。


この記事では、DbContext の作成、モデルの定義、移行の実行、データベース スキーマの更新など、EF Core 移行を使用して単純なデータベース スキーマを作成する方法について説明します。


これは、EF Core でできることの始まりにすぎません。 EF Core を使用して、データのクエリと操作、テーブル間の複雑なリレーションシップの作成などを行うことができます。使いやすさと幅広い機能を備えた EF Core は、.NET でデータ駆動型アプリケーションを構築するための優れた選択肢です。


この記事は、EF Core の移行を開始するのに役立ちました。ご質問やご意見がございましたら、以下に残してください。ハッピーコーディング!

フォローミーオン

C# の出版物LinkedInInstagramTwitterDev.to


こちらにも掲載