实体框架在迁移之前执行SQL

Don*_*ers 13 ef-code-first entity-framework-6

我正在开发一个使用Entity-Framework 6代码优先的现有项目.我需要在迁移运行之前运行一些SQL.

我有一个带有种子方​​法的DbMigrationsConfiguration类,但种子在迁移后运行.

我认为如果我在构造函数中运行SQL但它无法获取对上下文的引用,它将起作用.

有谁知道如何做到这一点?

Uch*_*tha 19

您可以在所需的迁移类中使用"Sql"方法.

public partial class OneOfYourMigrations : DbMigration 
{ 
    public override void Up() 
    { 
        //EF generated migration code here such as
        //CreateTable or AddColumn etc...
        //Now run your custom sql - here I'm doing an update to an existing column
        Sql("UPDATE dbo.YourTable SET Column1 = 'VALUE1' "); 
    } 

    public override void Down() 
    { 
        //EF generated code to rollback
    } 
}     
Run Code Online (Sandbox Code Playgroud)

所以步骤是;

  • 使用Add-Migration生成迁移类
  • 使用类似于上面的代码更改类
  • 使用Update-Database运行迁移


归档时间:

查看次数:

8176 次

最近记录:

11 年,1 月 前