Код IT
← Каталог

ORM на практике — Миграции и управление схемой базы данных

Фрагмент из «ORM на практике»: Миграции и управление схемой базы данных.

C# main.cs
// Пример создания миграции в Entity Framework
// Команда в Package Manager Console:
// Add-Migration InitialCreate

// Сгенерированный код миграции
public partial class InitialCreate : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.CreateTable(
            name: "Users",
            columns: table => new
            {
                Id = table.Column<int>(nullable: false)
                    .Annotation("SqlServer:Identity", "1, 1"),
                Name = table.Column<string>(nullable: true),
                CreatedAt = table.Column<DateTime>(nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_Users", x => x.Id);
            });
            
        migrationBuilder.CreateIndex(
            name: "IX_Users_Name",
            table: "Users",
            column: "Name");
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DropTable(name: "Users");
    }
}

// Применение миграции
// Update-Database
// Пример создания миграции в Entity Framework
// Команда в Package Manager Console:
// Add-Migration InitialCreate

// Сгенерированный код миграции
public partial class InitialCreate : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.CreateTable(
            name: "Users",
            columns: table => new
            {
                Id = table.Column<int>(nullable: false)
                    .Annotation("SqlServer:Identity", "1, 1"),
                Name = table.Column<string>(nullable: true),
                CreatedAt = table.Column<DateTime>(nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_Users", x => x.Id);
            });
            
        migrationBuilder.CreateIndex(
            name: "IX_Users_Name",
            table: "Users",
            column: "Name");
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DropTable(name: "Users");
    }
}

// Применение миграции
// Update-Database