MVC5+EF6+MYSQl,使用codeFirst的資料移轉

來源:互聯網
上載者:User

標籤:

        之前本人在用MVC4+EF5+MYSQL搭建自己的部落格。地址:www.seesharply.com;遇到一個問題,就是採用ef的codefirst模式來編寫程式,我們一般會在程式開發初期直接在global.asax裡面加上

        System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<Farm.Models.FarmContext>());//每次在模型更改的時候重建資料庫

或者是、

        System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseAlways<Farm.Models.FarmContext>());//每次都重建資料庫

        在開發初期這樣是可取的,我們可以一邊完善自己的模型類,然後不停更新資料庫;

        但是當我們進行到中期,已經產生了一些資料的時候,我們不想每次更新模型然後又要清空資料重建,這個時候,EF為我們提供了Magriation,可以在codeFirst的模式下,當模型發生更改的時候遷移資料,不得不說,EF和微軟自家的SQlServer配合的相當默契,這裡就不再贅述,這裡給一個串連就好:http://www.cnblogs.com/libingql/p/3330880.html

       但是EF和MYSQL就沒那麼好過了,再EF5下本人也是吃了不少苦,然後還是沒弄出來,這裡貼出個可能的解決方案串連:http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

   如果你點開了以上的串連,你會發現EF5下面配置MYSQl的更新其實是比較麻煩,而且很容易出錯,至少我是這樣,哭暈在廁所;偶然間想到不是有EF6麼,於是在EF6中嘗試了下,發現十分簡單;只用按照以下步驟,輕鬆搞定:

我們先建好項目,寫好模型,僅用於測試:

  public class User

    {

        [Key]

        public int Id { get; set; }

        public string Name { get; set; }

        public Blog Blog { get; set; }

    }

    public class Blog

    {

        [Key]

        public int Id { get; set; }

        public string Name { get; set; }

        public string Content { get; set; }

    }

然後在Nuget上面添加EntityFrameWork,注意,如果你是MVC5的項目可以直接添加控制器,然後選擇帶EF的的視圖,系統會幫你添加EF6,如果是MVC4,請手動到Nuget撒很添加EF6

添加完畢,然後建立控制器

 

點添加,這裡會自動幫你產生一些列視圖操作(不過咱們不需要,需要的兒時那個Context),然後再context類中添加以下代碼

好了,再到設定檔裡面添加Mysql的連接字串,名字就是整個Context類中配置的名字,預設就是contextt類名

好了,好了,這裡還需要添加Mysql的conecter,於是我們到Nuget上去添加

運行程式

  

我們再來查看資料庫

接下來我們執行遷移:首先添加一個log類

   public class Log

    {

        public int Id { get; set; }

        public string Message { get; set; }

    }

這時候如果直接運行會報錯,我們需要執行遷移;

好了,在程式管理主控台中輸入

Enable-Migrations -EnableAutomaticMigrations
執行成功後會幫你添加

我們再到Context類中添加

重建項目之後

然後添加Dbset:    public DbSet<Log> Logs { get; set; }

在到程式管理主控台輸入 add-migration LogTable,我們看到程式幫我們產生了這個,

其實內容就是對錶的一系列操作

最後,再倒1程式管理主控台輸入 update-database,

執行後,我們來查看資料庫

好了,執行成功,祝你好運(學習中,有什麼好的建議歡迎留言:www.seesharply.com)

MVC5+EF6+MYSQl,使用codeFirst的資料移轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.