新增你的第一次遷移

啟用遷移後(請參閱此示例 ),你現在可以建立包含所有資料庫表,索引和連線的初始建立的第一個遷移。

可以使用該命令建立遷移

Add-Migration <migration-name>

此命令將建立一個包含兩個方法 UpDown 的新類,用於應用和刪除遷移。

現在應用基於上面示例的命令來建立名為 Initial 的遷移 :

PM> Add-Migration Initial
Scaffolding migration 'Initial'.
The Designer Code for this migration file includes a snapshot of your current Code
First model. This snapshot is used to calculate the changes to your model when you
scaffold the next migration. If you make additional changes to your model that you 
want to include in this migration, then you can re-scaffold it by running 
'Add-Migration Initial' again.

建立一個新的檔案時間戳 _Initial.cs(這裡只顯示重要的東西):

public override void Up()
{
   CreateTable(
       "dbo.Authors",
        c => new
           {
               AuthorId = c.Int(nullable: false, identity: true),
               Name = c.String(maxLength: 128),
           })
        .PrimaryKey(t => t.AuthorId);
        
    CreateTable(
       "dbo.BlogPosts",
       c => new
           {
                Id = c.Int(nullable: false, identity: true),
                Title = c.String(nullable: false, maxLength: 128),
                Message = c.String(),
                Author_AuthorId = c.Int(),
            })
        .PrimaryKey(t => t.Id)
        .ForeignKey("dbo.Authors", t => t.Author_AuthorId)
        .Index(t => t.Author_AuthorId);
}
    
public override void Down()
{
    DropForeignKey("dbo.BlogPosts", "Author_AuthorId", "dbo.Authors");
    DropIndex("dbo.BlogPosts", new[] { "Author_AuthorId" });
    DropTable("dbo.BlogPosts");
    DropTable("dbo.Authors");
}

如你所見,在方法 Up() 中建立了兩個表 AuthorsBlogPosts,並相應地建立了欄位。另外,通過新增欄位 Author_AuthorId 來建立兩個表之間的關係。另一方面,Down() 方法試圖反轉遷移活動。

如果你對遷移有信心,可以使用以下命令將遷移應用於資料庫:

Update-Database

所有掛起的遷移(在本例中為 Initial -migration)都應用於資料庫,然後應用種子方法(相應的示例)

PM> update-database
Specify the '-Verbose' flag to view the SQL statements being applied to the target     
database.
Applying explicit migrations: [201609302203541_Initial].
Applying explicit migration: 201609302203541_Initial.
Running Seed method.

你可以在 SQL 資源管理器中檢視活動的結果: 資料庫概述

對於命令 Add-MigrationUpdate-Database,有幾個選項可用於調整活動。要檢視所有選項,請使用

get-help Add-Migration

get-help Update-Database