Jan 01, 1970
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 移行を有効にすると、一开始の移行を制作できます。移行を制作するには、パッケージ マネージャー コンソールを開き、次のコマンドを入力します。
PM> Add-Migration InitialCreate
データベースを更新する
移行を弄成したら、新しいモデルに不对するようにデータベース スキーマを系统更新できます。これを行うには、パッケージ マネージャー コンソールを開き、次のコマンドを入力します。
PM> Update-Database
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
データベース モデルの作成
プロジェクトの "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
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"); } } }
PM> Update-Database
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(); } } }
も掲載