一步一步學EF系列三【數據遷移】


我們每篇的內容都不多,所以希望在學習的過程中最后能親自敲一下代碼 這樣更有利於掌握。


我們現在接着上篇的例子,我們現在給隨便的表增加一個字段 CreateTime 創建日期 運行一下 看看會怎么樣

修改實體類,代碼給大家分享一下

public partial class Post
    {
        /// <summary>
        /// 隨筆的主鍵id
        /// </summary>
        public int PostId { get; set; }
        //  隨筆的標題
        public string PostTitle { get; set; }
        /// <summary>
        /// 操作人
        /// </summary>
        public int BlogUserId { get; set; }

        /// <summary>
        /// 創建日期
        /// </summary>
       
public DateTime CreateTime { get; set
; }
        /// <summary>
        /// 延遲加載博客用戶
        /// </summary>
        public virtual BlogUser BlogUser { get; set; }
    }

 運行一下:

截圖

你會看到如上的這個錯誤。這章本來應該作為第2篇,因為如果你親自試過了的話,當你修改實體的屬性關系,也會同樣報這個錯

如果你也出現了這個錯誤,恭喜你 ,你正在進步!

看字面的意思 你也能明白,他讓我們使用Migrations進行數據庫更新遷移。

那具體怎么操作呢,那我們就直接開始了!!!

啟用自動遷移

一、在 Package Manager Console 下運行命令 Enable-Migrations,完成之后你就會看到如下:

         生成了兩個類:

         截圖

         這兩個類干什么的呢?暫時先不解釋 后面的話會在講解的。這里我分享一個關於遷移的博文有興趣可以看一下

         沒興趣的繼續往下看!!

 二、EF6 本身已經集成了Migrations 那我們主要演示的是手動去完成遷移的工作,實現在應用程序啟動時自動升級

1) 我沒有采用上面的方式,我是直接新建了一個Configuration類

image

2)我們直接來看代碼

public class Configuration : DbMigrationsConfiguration<BlogDbContext>
    {
        /// <summary>
        /// 初始化一個<see cref="MigrationsConfiguration"/>類型的新實例
        /// </summary>
        public Configuration()
        {
            //啟用自動遷移
            AutomaticMigrationsEnabled = true;
            //獲取或設置一個值表示如果在自動數據丟失是可以接受的 [慎重設置]
            AutomaticMigrationDataLossAllowed = true;
        } 
     }

核心代碼就兩句,簡單吧! 是不是覺得學習EF so easy! 不能用so easy因為我們這里說的都是最簡單的。要想學深入還是由難度的。

 三、然后在Global.asax里面添加一下代碼,代表應用程序初始化的時候把數據庫更新為最新的辦法

截圖

 四、運行效果

image

 

整篇文章中,需要寫的代碼也就不超過5行吧,所以也用了圖片來替代,為了就是讓學習的你能動手來試一下。

大家也可以加入QQ群進行交流(435498053)。輕松做生意外貿軟件

作者:STONE劉先生 出處:http://www.cnblogs.com/liupeng/

本文版權歸作者和博客園共有,歡迎轉載。未經作者同意下,必須在文章頁面明顯標出原文鏈接及作者,否則保留追究法律責任的權利。
如果您認為這篇文章還不錯或者有所收獲,可以點擊右下角的【推薦】按鈕,因為你的支持是我繼續寫作,分享的最大動力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM