asp.net mvc CodeFirst格局数据库迁移手续

 

选择Code
First方式营造好中央的类后,项目也伊始搭建达成并打响运行,而且已经将数据库表结构自动生成了。

唯独,我有新的类要加盟,有字段必要修改,那怎么做吧,删库,跑路 ?  哈哈 

 

采纳数据库迁移,将原始结构不改动,将新建类进行单独建表操作,大概是已有多少库表,改变字段,那就修改表。

 

搬迁手续:

1.打开先后包管理器控制台:工具->NuGet包管理器->程序包管理器控制台.(当然还有其它方法也能够打开,我相比较喜欢那种)SQL Server,**

SQL Server 1

点击后将弹出程序包管理器控制台

SQL Server 2

 极其要注意的是私自认同项目!!!

2.起动数据库迁移,执行命令:enable-migrations

SQL Server 3

 

由于Models不肯定就是一向运用项目中已部分文件夹Models,从而当你选中启动项目为asp.net
mvc 框架类型时,此处将会报错

现实来看我眼下项目标遍布情况:

SQL Server 4

自身将模型分离出来了,以至于当我暗许选中SearchEngine为启动项目时,在先后包管理器控制德雷斯顿输入的第四个指令就会报错

SQL Server 5

 

缓解方案:选中专断认同项目,选取为DbContext所在的品种,此处我的是类库

得逞操作会如下提醒:

SQL Server 6

并且在DbContext同级目录下扩张了migrations目录

SQL Server 7

 

3.开端数据库迁移命令**

1.Add-migration [自定义版本名称]

**  输入add-migration updateorderheader**

**SQL Server 8**

2.update-database

**  输入update-database**

SQL Server 9

 

此地假设和自己一样将DbContext单独分割出来的须求注意,须要在日前类库的布局文件中充裕数据库的总是地址

 

SQL Server 10

假如是平素在asp.net
mvc框架中的Models中进入的DbContext,则可不必,会一向读取Web.Config文件中的连接字符串

 

等候命令执行中……

出现很是了

SQL Server 11

 

 伊始物色自我电脑中的SQL Server Configuration Manage ,如果有则打开,找到

 SQL Server 12

 

 配置TCP/IP协议为已启用即可。

本人的本土没有该工具,只好通过如下格局找到该处

点击自身的微机右键->管理->服务和应用程序->SQLServer配置管理器   
 ( 四遍找那工具都没找到,貌似都是直接从那搞定的)

 重新输入指令,等待执行

SQL Server 13

千帆竞发成功

 

鉴于数据库中有些表无需变更

咱俩得以在migrations目录中,更改须要增添或修改的具体表

SQL Server 14

 

 

透过改动其中的CreateTable/DropTable,能够决定什么表须要变更

namespace SAssassin.EF.Model.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class updateorderheader : DbMigration
    {
        public override void Up()
        {
            CreateTable(
                "dbo.MyFileInfoes",
                c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    FileName = c.String(),
                    FileDescription = c.String(),
                    FilePath = c.String(),
                    FileType = c.Byte(nullable: false),
                    FileSize = c.String(),
                    FileStatus = c.Byte(nullable: false),
                    IsPublic = c.Byte(nullable: false),
                    UserId = c.String(),
                    UserName = c.String(),
                    CreateDate = c.DateTime(nullable: false),
                    LastModityDate = c.DateTime(nullable: false),
                })
                .PrimaryKey(t => t.Id);
        }

        public override void Down()
        {
            DropTable("dbo.MyFileInfoes");
        }
    }
}

4.修改代码配置,已毕之后的操作没那么辛苦

修改migrations目录中的Configuration.cs文件,开启自动迁移

SQL Server 15

5.在项目Global.asax的Application_Start中添加如下代码行:

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<SAssassin.EF.Model.CodeFirst, SAssassin.EF.Model.Migrations.Configuration>());

 

 

到此,数据库迁移工作早就终结了。

 

 2017-10-15,望技术有成后能回来看见自己的脚步。

 

相关文章