I am working on an existing project that uses Entity-Framework 6 with code-first. I have a need to run some SQL before the migrations run.
I have a DbMigrationsConfiguration class with a seed method, but seed runs after the migrations.
I think it will work if I run my SQL in the constructor but I can't get a reference to the context.
Does anyone know how to do this?
You could use the 'Sql' method within the desired migration class.
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
}
}
So the steps are;
- Generate migration class using Add-Migration
- Alter the class using code similar to above
- Run the migration using Update-Database