.net Mvc Code First 模式 模型修改自动同步到数据库

使用nuget 添加EntityFramework 引用

引入命名空间

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

关键代码

internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
 {
    public MainDbMigrationsConfiguration()
     {
        //默认情况下不会自动迁移数据库结构
        //设置为true则自动迁移数据库结构
         AutomaticMigrationsEnabled = true;
     }
}

完整的类大概是这个样子

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>();
        }
    }
}

这种方式主要是将原本独立出来的类合并到DbContext中来.
更常规一点的做法是把下面这段代码独立出来,放在一个类里面方便后期维护

internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
        {
            public MainDbMigrationsConfiguration()
            {
                AutomaticMigrationsEnabled = true;//任何Model Class的修改将会直接更新DB
                AutomaticMigrationDataLossAllowed = true;
            }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,776评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,491评论 2 59
  • 2017年8月1日开始记录碰到的问题。 pinta 绘图软件 简易画图软件,东西都很简单。还支持插件,不过插件库感...
    rainboom阅读 1,417评论 0 2
  • 我从不怀疑写作大咖的文学功底,想让自己的文章好。就先写个几十万字再说,先读几千本书再谈。 有的人问,书读的多,文章...
    rain夏阅读 2,990评论 1 4
  • 今天很幸福,真的是,没有那么坏的大家,只不过是有的事情让人崩溃,有的是自己做的太过分了,所以再愤怒的时候,想想自己...
    sakurakang1993阅读 1,326评论 0 0