昨晚睡不着,想想還是再寫點Migration的東西吧,一大早發布到園子里給各位兄弟鑒賞!
上面兩篇關於Migration的文章都是介紹如何進行Codebase-Migration的,你肯定要說:煩不煩啊,改點東西就要Package Manager Console里面敲命令。。。
有木有一種自動的Migration方式,在我改好DomainModel后只要敲一次命令就全幫我搞定?這個可以有啊!!!
下面我們介紹Automatic-Migration:
CodeFirst默認的是Codebase-Migration,我們直接把Migrations文件夾中的Configuration類的構造函數中的
AutomaticMigrationsEnabled設為True就OK(不用去敲什么命令了,我敲了敲發現有時候會出一些很無聊的錯,你試了就知道,但我覺得沒必要試)
假設我們要Blog類中增加User屬性,在User類中增加Gender屬性,然后一次性更新數據庫

1 class Blog 2 { 3 public int BlogId { get; set; } 4 public string Name { get; set; } 5 public string Type { get; set; } 6 public User User { get; set; } 7 }

1 class User 2 { 3 public int UserId { get; set; } 4 public string UserName { get; set; } 5 public string MyBlog { get; set; } 6 public string Gender { get; set; } 7 }
在類中分別添加對於屬性,然后Package Manager Console中敲入"update-database -verbose"然后回車,你會發現CodeFirst真是太聰明了,自動為你的Blog表建立了一個外鍵(我們暫且不討論外鍵好不好,需不需要),按正常的設計思想它的確為我們實現了應該實現的!
Migration至此講完了,歡迎大家就實踐過程中遇到的問題與我討論!!!