首頁 Entity Framework Code First if DataBase Exist-2
文章
Cancel

Entity Framework Code First if DataBase Exist-2

1.確認實體模型準備好了之後

Desktop View

2.執行安裝EntityFramework

指令:

1
 NuGet\Install-Package EntityFramework -Version 6.4.4

如附圖 Desktop View

2.執行資料遷移enable-migrations

指令:

1
 enable-migrations

如附圖
Desktop View

3.建立初始資料

指令:

1
 add-migration InitialModel -IgnoreChanges -Force

如附圖 Desktop View

4.在更新操作紀錄到資料庫中,以便追蹤更改記錄

指令:

1
 Update-Database

如附圖
Desktop View

在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; }
      }
  }

如附圖
Desktop View

1.在Model1.cs中添加virtual DbSet

如附圖
Desktop View

2.執行add-migration NewDataSheetTable -Force

備註:NewDataSheetTable 是自己任意定義的名稱
-Force表示強制覆蓋當前的migration記錄

1
 add-migration NewDataSheetTable -Force

如附圖
Desktop View

此時該資料表尚未於資料表中產生實體,且尚無任何內容
若需要添加內容或更改主鍵或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

如附圖
Desktop View

SQL Server可以看到剛剛新增的資料表

已經透過指令更新到SQL Server了
如附圖
Desktop View

本文由作者按照 CC BY 4.0 進行授權