EntityFramework数据迁移

database

1.启用迁移

  • 在Package Manager Console中运行Enable-Migrations命令

此命令已将Migrations文件夹添加到我们的项目中,此新文件夹包含两个文件:

  • Configuration.cs(配置类) : 此类允许您配置迁移对您的上下文的行为
  • InitialCreate(初始创建迁移):这种迁移是因为在启用迁移之前,已经有Code First为我们创建了一个数据库。此支架迁移中的代码表示已在数据库中创建的对象。

 

 

2.生成和运行迁移

代码优先迁移有两个主要的命令,你将会变得熟悉。

(1)根据自上次迁移创建以来,对您的模型所做的更改,

Add-Migration将支持下一次迁移

(2)

Update-Database将应用任何挂起的迁移到数据库

步骤:

修改model里面的类的属性货方法,然后运行 指令:

  • Add-Migration + 迁移名称    
  • Update-Database      将应用任何挂起的迁移到数据库

 

3.自定义迁移

    先Add-Migration 迁移名称 

然后修改 

最后Update-Database

4.数据运动/自定义SQL

实例:

    namespace MigrationsDemo.Migrations

{

using System;

using System.Data.Entity.Migrations;

public partial class AddPostAbstract : DbMigration

{

public override void Up()

{

AddColumn("dbo.Posts", "Abstract", c => c.String());

Sql("UPDATE dbo.Posts SET Abstract = LEFT(Content, 100) WHERE Abstract IS NULL");

}

public override void Down()

{

DropColumn("dbo.Posts", "Abstract");

}

}

}

 

 

5.迁移到特定版本(包括降级)

Update-Database -TargetMigration:指定迁移的名称

例如:

Update-Database -TargetMigration:AddBlogUrl

 

6.获取SQL脚本

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: AddPostAbstract(指定的数据迁移名称)

7.自动升级应用程序启动(MigrateDatabaseToLatestVersion Initializer)

如果您正在部署应用程序,则可能希望在应用程序启动时自动升级数据库(通过应用任何挂起的迁移)。您可以通过注册MigrateDatabaseToLatestVersion数据库初始化程序来执行此操作。数据库初始化程序只包含一些用于确保数据库设置正确的逻辑。该逻辑首次在应用程序进程(AppDomain)中使用上下文时运行。 

我们可以更新Program.cs文件,如下所示,在使用上下文(第14行)之前,为BlogContext设置MigrateDatabaseToLatestVersion初始值。请注意,您还需要为System.Data.Entity命名空间添加一个using语句(第5行)。 

当我们创建这个初始化器的一个实例时,我们需要指定上下文类型(BlogContext )和迁移配置(配置) - 迁移配置是当我们启用Migrations时添加到Migrations文件夹的类。 

Database.SetInitializer(new MigrateDatabaseToLatestVersion ()); 

以上是 EntityFramework数据迁移 的全部内容, 来源链接: utcz.com/z/534746.html

回到顶部