1.確認實體模型準備好了之後
2.執行安裝EntityFramework
指令:
1
NuGet\Install-Package EntityFramework -Version 6.4.4
如附圖
2.執行資料遷移enable-migrations
指令:
1
enable-migrations
如附圖
3.建立初始資料
指令:
1
add-migration InitialModel -IgnoreChanges -Force
如附圖
4.在更新操作紀錄到資料庫中,以便追蹤更改記錄
指令:
1
Update-Database
如附圖
在VS建立新的資料表的方式 :建立一個新的Class
備註:在使用Code First的情況下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeFirst
{
public class NewDataSheet
{
public int Id { get; set; }
public string Name { get; set; }
}
}
如附圖
1.在Model1.cs中添加virtual DbSet
如附圖
2.執行add-migration NewDataSheetTable -Force
備註:NewDataSheetTable 是自己任意定義的名稱
-Force表示強制覆蓋當前的migration記錄
1
add-migration NewDataSheetTable -Force
如附圖
此時該資料表尚未於資料表中產生實體,且尚無任何內容
若需要添加內容或更改主鍵或Not Null設定(更改nullable或identity的Bool 設定值
!!!如果數值為Int且不須自動累加數值,identity的Bool記得要改為false
需再Migration資料夾中的NewDataSheetTable遷移記錄 進行更改
若需要添加內容,可於Up下方輸入SQL指令,變成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace CodeFirst.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class NewDataSheetTable : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.NewDataSheets",
c => new
{
Id = c.Int(nullable: false, identity: false),
Name = c.String(),
})
.PrimaryKey(t => t.Id);
Sql("Insert Into NewDataSheets values(1,'Test')");
Sql("Insert Into NewDataSheets values(2,'Demo')");
}
public override void Down()
{
DropTable("dbo.NewDataSheets");
}
}
}
更新實體資料庫
確認完要更改的項目之後 執行Update-Database:同步更新實體資料庫
1
Update-Database
如附圖
SQL Server可以看到剛剛新增的資料表
已經透過指令更新到SQL Server了
如附圖