在使用ef的時候我們經常會用到資料遷移功能,這是必不可少的。
(Code First模式)
1:Enable-Migrations
這是根據連接配接字元串來檢查資料庫中是否有資料庫,若是沒有,則建立一個資料庫。并且發現生成如下檔案。
![]()
資料遷移
這是生成的配置檔案裡面有一個類,這個類裡面有兩個方法:一個無參構造函數 一個seed方法。
這裡剛開始的時候是false,但是我們要進行資料遷移的時候要将其設定為true。這樣我們就可以手動的更新了。
seed方法我們觀察裡面的代碼被注釋掉了,這是它在遷移成功之後才去執行,用于初始化資料庫裡面的内容。
2:Update-database –force
這句是我們經常使用的,就是我們修改了模型之後,我們要同步到資料庫中,就使用這句,但是我們老大說這句可以存在資料的丢失。(不清楚)
之是以添加後面的-force是因為我們的資料庫可能裡面儲存了資料,這樣添加的時候就儲存原先的資料,隻是将我們修改的模型修改過來就行了。
3:Update-database –script
将上一句後面的參數換掉,這樣就隻是将我們修改的模型單獨的生成了SQL代碼,但是資料庫裡面的模型是不會改變的,我們需要将生成的代碼在DB中跑一遍就行了。老大說這樣就避免了資料的丢失。比起-force強很多,但是我覺得是一樣的。可能是因為我沒有遇到這樣的情況吧。
4:當我們生成資料庫的時候會發現表中多了一個表MigrationHistory.
我們打開這個表發現它裡面的字段如下。
裡面儲存的就是我們修改模型的記錄。
我們在使用EF的時候有可能會出現遷移不成功,就是按照正常的方式來做的,為什麼呢。關于這個我也沒辦法解決,但是下面幾個辦法可以試一下。
1:若是我們自己下面練習dome就可以将資料庫删除,重新進行遷移,這樣就可以解決很多的問題。
2:删除掉自動生成的Migration表,讓其重新生成。
作者:阿輝
關注我:微信掃描下面二維碼,關注後6T程式設計資料免費送。
微信公衆号:
Andy阿輝出處:http://www.cnblogs.com/netxiaoahui/
版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,
但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.