天天看點

資料遷移

   在使用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/

版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,

但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.