從「工具」選單中,選擇「nuget 包管理器」 > 「包管理器控制台」。
在pm>提示符處輸入以下命令:
enable-migrations add-migration initialcreate
執行第一次遷移
當您執行add-migration命令時,遷移生成的**,將從頭開始建立資料庫。 此**也是在遷移資料夾中,在名為的檔案《時間戳》_initialcreate.cs。 up方法initialcreate類建立與資料模型實體集相對應的資料庫表和down方法中刪除它們。
public partial class initialcreate : dbmigration
).primarykey(t => t.courseid);
createtable(
"dbo.enrollment",
c => new
).primarykey(t => t.enrollmentid)
.foreignkey("dbo.course", t => t.courseid, cascadedelete: true)
.foreignkey("dbo.student", t => t.studentid, cascadedelete: true)
.index(t => t.courseid)
.index(t => t.studentid);
createtable(
"dbo.student",
c => new
).primarykey(t => t.id);
}
public override void down()
);dropindex("dbo.enrollment", new );
droptable("dbo.student");
droptable("dbo.enrollment");
droptable("dbo.course");
}}
遷移呼叫 up 方法為遷移實現資料模型更改。 輸入用於回退更新的命令時,遷移呼叫 down 方法。
這是你輸入時建立的初始遷移add-migration initialcreate命令。 引數 (initialcreate在示例中) 用於檔案命名,可以是任何所需內容; 通常選擇的單詞或短語彙總了遷移做什麼。 例如,你可能會命名為更高版本遷移"adddepartmenttable"。
如果建立初始遷移時已存在資料庫,則會生成資料庫建立**,但此**不必執行,因為資料庫已與資料庫模型相匹配。 將應用部署到其中尚不存在資料庫的其他環境時,此**將執行以建立資料庫,因此最好提前進行測試。 這就是為什麼更改連線字串前面部分中的資料庫的名稱—以便遷移可以建立乙個從零開始的新。
在中程式包管理器控制台視窗中,輸入以下命令:
update-database
update-database命令將執行up方法來建立資料庫,然後將它執行seed方法來填充該資料庫。 相同的過程將自動執行在生產環境中部署應用程式之後, 您將看到以下部分中。
使用伺服器資源管理器一樣在第乙個教程中,檢查資料庫並執行應用程式以驗證一切仍然正常相同像以前一樣。
Web部署之codefirst遷移問題
因為前幾天突然負責管理乙個服務 此前對這方面的知識只了解一點點,現在遇到了一些問題急需解決,所以花了一點時間倒騰了一下,現在把收穫記錄一下。希望能對有需要幫助的人有用 遇到的問題 更新新版本發布部署時,總報錯說新增列不合理,或則某一值不能設定為空值 實際情況 在本地新增列確實存在,無問題,某一項值也...
CodeFirst遷移注意點
context建構函式 不檢查 migrationhistory 取消當資料庫模型發生改變時刪除當前資料庫重建新資料庫的設定。database.setinitializer null 重新建立資料庫 database.setinitializer new dropcreatedatabaseifmo...
EF 的 code first 資料遷移
當開發過程中,由類生成了資料庫。但是,在後續的開發過程,要更改某個資料庫的表的列或是增加乙個資料表的時候。ef6.0的操作分別為 為類新增列 比如 cuser 類有name adress兩列。現在需要新增 school一列。使用code first 進行 遷移 migration,步驟如下 1 在v...