Search code examples
c#entity-frameworkcode-firstentity-framework-migrations

How to run Seed() method of Configuration class of migrations


I have 2 questions:

1) How can I run Seed() method from the package-manager console without updating-database model?

2) Is there a way how to call Seed() method in the code?

Thx for any advice.


Solution

  • After research I finally found the workaround for this issue:

    1) Make Configuration public:

    public sealed class Configuration : DbMigrationsConfiguration<YourContextClassHere>
    

    2) Add the code below anywhere. It will run the latest migration and update your database:

    Configuration configuration = new Configuration();
    configuration.ContextType = typeof(YourContextClassHere);
    var migrator = new DbMigrator(configuration);
    
    //This will get the SQL script which will update the DB and write it to debug
    var scriptor = new MigratorScriptingDecorator(migrator);
    string script = scriptor.ScriptUpdate(sourceMigration: null, targetMigration: null).ToString();
    Debug.Write(script);
    
    //This will run the migration update script and will run Seed() method
    migrator.Update();