我們每篇的內容都不多,所以希望在學習的過程中最后能親自敲一下代碼 這樣更有利於掌握。
我們現在接着上篇的例子,我們現在給隨便的表增加一個字段 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類
2)我們直接來看代碼
public class Configuration : DbMigrationsConfiguration<BlogDbContext> { /// <summary> /// 初始化一個<see cref="MigrationsConfiguration"/>類型的新實例 /// </summary> public Configuration() { //啟用自動遷移 AutomaticMigrationsEnabled = true; //獲取或設置一個值表示如果在自動數據丟失是可以接受的 [慎重設置] AutomaticMigrationDataLossAllowed = true; } }核心代碼就兩句,簡單吧! 是不是覺得學習EF so easy! 不能用so easy因為我們這里說的都是最簡單的。要想學深入還是由難度的。
三、然后在Global.asax里面添加一下代碼,代表應用程序初始化的時候把數據庫更新為最新的辦法
四、運行效果
整篇文章中,需要寫的代碼也就不超過5行吧,所以也用了圖片來替代,為了就是讓學習的你能動手來試一下。
作者:STONE劉先生 出處:http://www.cnblogs.com/liupeng/
本文版權歸作者和博客園共有,歡迎轉載。未經作者同意下,必須在文章頁面明顯標出原文鏈接及作者,否則保留追究法律責任的權利。
如果您認為這篇文章還不錯或者有所收獲,可以點擊右下角的【推薦】按鈕,因為你的支持是我繼續寫作,分享的最大動力!