code-first資料遷移
首先要通過nuget將ef公升級至最新版本。
新建mvc 4專案mvcmigrationdemo
新增資料模型 person 和 department,定義如下:
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.web;
5using
system.componentmodel.dataannotations;
6using
system.componentmodel.dataannotations.schema;78
namespace
mvcmigrationdemo.models914
15[required]
16 [maxlength(20
)]17
public
string personname
1819
public
virtual department departmant
2021}22
}
1新增控制器 personcontrollerusing
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.web;
5using
system.componentmodel.dataannotations;
6using
system.componentmodel.dataannotations.schema;78
namespace
mvcmigrationdemo.models914
15[required]
16 [maxlength(200
)]17
public
string deptname
1819
public icollectionpersons 20}
21}
1除錯,**輸入http://localhost:7139/personusing
system.data.entity;23
namespace
mvcmigrationdemo.models419
20public dbsetpeople
21public dbsetdepartments 22}
23 }
登陸(localdb)\v11.0,資料庫如下圖:
出現新建表[dbo].[departments]和[dbo].[people],以及系統表[dbo].[__migrationhistory]。
其中[dbo].[__migrationhistory]用來追蹤每次資料模型異動資訊,如下圖
migrationid記錄版本,model記錄這次建立時的資料模型,productversion代表當前ef版本。
啟動資料遷移
開啟程式包管理器控制台,輸入enable-migrations指令,以mvcmigrationdemocontext為例,輸入如下:
enable-migrations -contexttypename mvcmigrationdemo.models.mvcmigrationdemocontext
執行結果如下:
檢視解決方案資源管理器,如圖
vs 會建立乙個migrations目錄,包含兩個文件201507070650021_initialcreate和configuration。
會發現201507070650021_initialcreate剛好和[dbo].[__migrationhistory].migrationid一致,文件記錄了建立本次資料模型的完整描述。
configuration定義了資料庫遷移該有的行為。
執行資料庫遷移
修改department資料模型如下:新增about欄位
1檢視專案migration目錄,會發現新增文件:201507070718108_addaboutusing
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.web;
5using
system.componentmodel.dataannotations;
6using
system.componentmodel.dataannotations.schema;78
namespace
mvcmigrationdemo.models914
15[required]
16 [maxlength(200
)]17
public
string deptname
1819 [maxlength(4000
)]20
public
string about
2122
public icollectionpersons 23}
24 }
此時還沒有對資料庫做任何遷移動作,可檢視資料表department,無任何修改如圖
手動新增測試資料如下圖
進行遷移動作 在pm中輸入update-database指令,本次操作如下:
更新資料庫成功後,檢視資料庫。如下圖。
到此,資料遷移完成。
附1:可通過update-database指令自動生成資料庫遷移的t-sql指令碼,本次操作如下:update-database -sourcemigration 201507070650021_initialcreate -targetmigration 201507070718108_addabout -script
附2:還原資料庫 本次操作如下:update-database -targetmigration 201507070650021_initialcreate
檢視此時的資料庫,發現資料庫已還原:
EF EF Code First資料遷移
code first資料遷移 首先要通過nuget將ef公升級至最新版本。新建mvc 4專案mvcmigrationdemo 新增資料模型 person 和 department,定義如下 1 using system 2using system.collections.generic 3using...
資料探勘 資料
對關注的屬性,樣本與原始資料集有相同的性質,則用抽樣計算的結果與全集是一樣。1.1 抽樣的方法 1 簡單隨機抽樣 random sampling 放回 不放回 2 分層抽樣 stratified sampling 如果資料集不同型別的資料數量差異過大,則隨機抽樣會丟失數量少的樣本。可針對不同資料組,...
大資料資料
作業系統 核心 分配和管理硬體 庫 沒有入口的應用軟體 應用軟體 1 設定網絡卡為nat模式 2 確保windows下的服務是否啟動 dhcp,net服務 3 編輯檔案 vi etc sysconfig network scripts ifcfg eth0 4 onboot yes 5 設定ip s...