利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了,但是,我有新的类要加入,有字段需要修改,就得将这部分修改同步到数据库中,利用数据库迁移,将原有结构不改动,将新建类进行单独建表操作,或者是已有数据库表,改变字段,那就修改表。

迁移步骤:

1、打开程序包管理器控制台:工具->NuGet包管理器->程序包管理器控制台.(当然还有其它方式也可以打开,我比较喜欢这种)

  

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

  

极其要注意的是默认项目!!!

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

  

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

  具体来看我当前项目的分布情况:

  

  我将模型分离出来了,以至于当我默认选中SearchEngine为启动项目时,在程序包管理器控制台中输入的第一个命令就会报错

  

  解决方案:选中默认项目,选择为DbContext所在的项目,此处我的是类库

  成功操作会如下提示:

  

  并且在DbContext同级目录下增加了migrations目录

  

3、开始数据库迁移命令

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

  输入add-migration updateorderheader

  

  2.update-database

  

  此处如果和我一样将DbContext单独分割出来的需要注意,需要在当前类库的配置文件中加上数据库的连接地址

  

  如果是直接在asp.net mvc框架中的Models中加入的DbContext,则可不必,会直接读取Web.Config文件中的连接字符串。

  等待命令执行中时出现异常了。

  

  开始寻找我电脑中的SQL Server Configuration Manage ,如果有则打开,找到

  

   配置TCP/IP协议为已启用即可。我的本地没有该工具,只能通过如下方式找到该处,点击我的电脑右键->管理->服务和应用程序->SQLServer配置管理器     ( 两次找这工具都没找到,貌似都是直接从这解决的), 重新输入命令,等待执行

  

  初步成功,由于数据库中有些表无需更改,我们可以在migrations目录中,更改需要增加或修改的具体表

  

  通过修改其中的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文件,开启自动迁移

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,望技术有成后能回来看见自己的脚步。

asp.net mvc CodeFirst模式数据库迁移步骤的更多相关文章

  1. 使用EF Code First搭建一个简易ASP.NET MVC网站,允许数据库迁移

    本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移. 创建一个ASP.NET MVC 4 网站. 在Models文件夹内创建Person类. public ...

  2. EF的CodeFirst模式自动迁移(适用于开发环境)

    EF的CodeFirst模式自动迁移(适用于开发环境) 1.开启EF数据迁移功能 NuGet包管理器------>程序包管理控制台---------->Enable-Migrations ...

  3. asp.net MVC SignalR 与数据库 实时同步显示

    asp.net MVC SignalR 与数据库 实时同步显示 错误:未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数据库启用 ...

  4. Asp.Net MVC 上传图片到数据库

    [读书笔记]Asp.Net MVC 上传图片到数据库(会的绕行)   之前上传图片的做法都是上传到服务器上的文件夹中,再将url保存到数据库.其实在MVC中将图片上传到数据库很便捷的事情,而且不用去存 ...

  5. ASP.NET MVC——CodeFirst开发模式

    Entity Framework框架提供了几种开发模式,比如Database First,Model First,Code First.Database First是最老也是应用得最广泛的一种设计方式 ...

  6. ASP.NET MVC 4 让数据库自动迁移

    今天实际测试了下这个方法,可以保持数据库与实体类同步,同时不会出现数据库迁移的提示.但是只能更改实体类来改变数据库,而不能改数据库来改变实体类.所以这才是Code frist,如果通过改数据库表来改动 ...

  7. 【转】asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别

    原文地址:http://blog.csdn.net/luoyeyu1989/article/details/8275866 首先,MVC和三层架构,是不一样的. 三层架构中,DAL(数据访问层).BL ...

  8. ASP.NET MVC架构模式

    一.是什么? MVC,即(Model-View-Controller,模型—视图—控制器模式),和三层类似,用于表示一种软件架构模式.在这种模式下,将系统的实现分为模型Model,视图View,控制器 ...

  9. ASP.NET MVC + 工厂模式 + 三层 + 缓存

    最近将手头的项目总结整理了一下,以方便自己的学习.... 下面直接上图先介绍项目的结构图: 项目是ASP.NET MVC 4.0的应用程序,DBUtility这个类库主要是DbHelper操作数据库的 ...

随机推荐

  1. 【Beta阶段】第四次scrum meeting

    Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 查找适合的素材模块,和105一起把手势功能连接到APP上 100% 查阅换 ...

  2. 201521123077 《Java程序设计》第4周学习总结

    1. 本周学习总结 几种简单说明注释的使用 抽象类与抽象方法 super调用父类的方法 2. 书面作业 Q1.注释的应用使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看. ...

  3. 201521044091 《Java程序设计》第2周学习总结

    1本章学习总结 (1)一些java的基本语法 (2)java API文件 (3)使用码云管理自己的代码 2.Java Q&A 1)使用Eclipse关联jdk源代码(截图),并查看String ...

  4. 201521123122 《java程序设计》第十四周学习总结

    ## 201521123122 <java程序设计>第十四周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. M ...

  5. 手写Maven的archetype项目脚手架

    一.背景 maven是一个很好的代码构建工具,采用“约定优先于配置”的原则进行项目管理,相信很多的java开发者应该都了解maven并可能在工作当中都是通过maven来管理项目的,在创建的项目的时候, ...

  6. 基于图形检测API(shape detection API)的人脸检测

    原文:https://paul.kinlan.me/face-detection/ 在 Google 开发者峰会中,谷歌成员 Miguel Casas-Sanchez 跟我说:"嘿 Paul ...

  7. Redis总结(六)Redis配置文件全解

    前面已经写了一些关于redis 的介绍,redis 的基本功能和用法,基本上都说了,有问题的可以去看看 http://www.cnblogs.com/zhangweizhong/category/77 ...

  8. Hibernate逆向工程【PowerDesigner、idea环境下】

    为什么要使用逆向工程 由于我们每次编写Hibernate的时候都需要写实体,写映射文件.而且Hibernate的映射文件也容易出错.而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了. 使用 ...

  9. JVM菜鸟进阶高手之路十二(jdk9、JVM方面变化, 蹭热度)

    转载请注明原创出处,谢谢! 经过 4 次跳票,历经曲折的 Java 9 正式版终于发布了!今天看着到处都是jdk9发布了,新特性说明,心想这么好的蹭热度计划能错过嘛,哈哈,所以就发了这篇文章. 目前j ...

  10. OpenStack Pike超详细搭建文档 LinuxBridge版

    前言 搭建前必须看我 本文档搭建的是分布式P版openstack(1 controller + N compute + 1 cinder)的文档. openstack版本为Pike. 搭建的时候,请严 ...