首页 > 代码库 > ASP.NET MVC 4下 Code First 数据库迁移

ASP.NET MVC 4下 Code First 数据库迁移

 一.命令开启

1.打开控制台:视图->其他窗口->程序包管理器控制台;

 

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

  创建成功后会新增migrations目录等。

  若报如下错误:

 

      PM> Enable-Migrations
    More than one context type was found in the assembly ‘FirstMVC‘.
    To enable migrations for FirstMVC.Models.UsersContext, use Enable-Migrations -ContextTypeName FirstMVC.Models.UsersContext.
    To enable migrations for FirstMVC.Models.FirstMVCContext, use Enable-Migrations -ContextTypeName FirstMVC.Models.FirstMVCContext.

  则要指定具体一个数据上下文类。

  本人只有一个数据库,可以不用输入。

 

3.运行数据库迁移

  启动数据库迁移设置成功后,对Model 结构的修改,需要手动创建数据库迁移。

  **以后每次对Model接口的修改操作,都执行如下2个命令即可。**

  命令如下:

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

  (2).update-database

PM> add-migration updateorderheader

正在为迁移“updateorderheader”搭建基架。
此迁移文件的设计器代码包含当前 Code First 模型的快照。在下一次搭建迁移基架时,将使用此快照计算对模型的更改。如果对要包含在此迁移中的模型进行其他更改,则您可通过再次运行“Add-Migration 201407020938316_updateorderheader”重新搭建基架。
PM> update-database
指定“-Verbose”标记以查看应用于目标数据库的 SQL 语句。
正在应用基于代码的迁移: [201407020938316_updateorderheader]。
正在应用基于代码的迁移: 201407020938316_updateorderheader。
正在运行 Seed 方法。
PM>

 

4.修改代码配置

以上步骤执行完成后,

(1).在生成的目录文件中  Migrations/Configuration.cs 

  将 AutomaticMigrationsEnabled = false; 修改为  AutomaticMigrationsEnabled = true; 

(2).在项目Global.asax的Application_Start中加上如下代码行:

  System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<FirstMVC.Models.FirstMVCContext,Migrations.Configuration>());

注释:FirstMVC.Models.FirstMVCContext 为创建的数据上下文类。

Migrations.Configuration 为成功执行Enable-Migrations命令后生成的文件类。

 

OK了,以后每次修改Model后只需要执行以上第3步的2个命令即可。

 

 

ASP.NET MVC 4下 Code First 数据库迁移