.net Mvc Code First 模式 模型修改自動(dòng)同步到數(shù)據(jù)庫(kù)

使用nuget 添加EntityFramework 引用

引入命名空間

using System.Data.Entity;
using System.Data.Entity.Migrations;

關(guān)鍵代碼

internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
 {
    public MainDbMigrationsConfiguration()
     {
        //默認(rèn)情況下不會(huì)自動(dòng)遷移數(shù)據(jù)庫(kù)結(jié)構(gòu)
        //設(shè)置為true則自動(dòng)遷移數(shù)據(jù)庫(kù)結(jié)構(gòu)
         AutomaticMigrationsEnabled = true;
     }
}

完整的類(lèi)大概是這個(gè)樣子

using System.Data.Entity;
using System.Data.Entity.Migrations;

namespace ManageSystem.Core
{
    public class MainDbContext : DbContext
    {
        public MainDbContext() : base()
        {
            Database.SetInitializer<MainDbContext>(new MigrateDatabaseToLatestVersion<MainDbContext, MainDbMigrationsConfiguration>());
        }
        public MainDbContext(string connectionName) : base(connectionName)
        {
            Database.SetInitializer<MainDbContext>(new MigrateDatabaseToLatestVersion<MainDbContext, MainDbMigrationsConfiguration>());
        }
        internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
        {
            public MainDbMigrationsConfiguration()
            {
                AutomaticMigrationsEnabled = true;
            }
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
        }
    }
}

這種方式主要是將原本獨(dú)立出來(lái)的類(lèi)合并到DbContext中來(lái).
更常規(guī)一點(diǎn)的做法是把下面這段代碼獨(dú)立出來(lái),放在一個(gè)類(lèi)里面方便后期維護(hù)

internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
        {
            public MainDbMigrationsConfiguration()
            {
                AutomaticMigrationsEnabled = true;//任何Model Class的修改將會(huì)直接更新DB
                AutomaticMigrationDataLossAllowed = true;
            }
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,172評(píng)論 25 708
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,042評(píng)論 2 59
  • 2017年8月1日開(kāi)始記錄碰到的問(wèn)題。 pinta 繪圖軟件 簡(jiǎn)易畫(huà)圖軟件,東西都很簡(jiǎn)單。還支持插件,不過(guò)插件庫(kù)感...
    rainboom閱讀 230評(píng)論 0 2
  • 我從不懷疑寫(xiě)作大咖的文學(xué)功底,想讓自己的文章好。就先寫(xiě)個(gè)幾十萬(wàn)字再說(shuō),先讀幾千本書(shū)再談。 有的人問(wèn),書(shū)讀的多,文章...
    rain夏閱讀 471評(píng)論 1 4
  • 今天很幸福,真的是,沒(méi)有那么壞的大家,只不過(guò)是有的事情讓人崩潰,有的是自己做的太過(guò)分了,所以再憤怒的時(shí)候,想想自己...
    sakurakang1993閱讀 215評(píng)論 0 0

友情鏈接更多精彩內(nèi)容