i am writing a simple CMS
over ASP.NET MVC framework (for college final project).my problem is with module's data-migration strategy.as each module will update the database schema when it is installed , a database migration mechanism must be implemented in module installation system.ok , data-migration
in entity framework is already there (thanks to MS) , but the migration commands run in package manager console.is there any way to run a Data-Migration
code Programmatically?
any help is very appreciated.
If you've enabled the automatic migrations in Package Manager Console you can use the following code in an init section of your app (e.g. in SimpleMembershipInitializer):
var migratorConfig = new Migrations.Configuration();
var dbMigrator = new DbMigrator(migratorConfig);
dbMigrator.Update();
Where Migrations.Configuration is the migration configuration class placed in your project into your namespace (YourProjectNamespace.Migrations).
If you use it programmatically you should at first turn off the EF initializer:
Database.SetInitializer<YourDBContext>(null);
The thing is the programmatic update creates a database if it doesn't exist.
This class exposes the EF migrations in code:
System.Data.Entity.MigrateDatabaseToLatestVersion
In EF, migrations work on a whole database though - not modular parts of one.
Just found this class too:
System.Data.Entity.Migrations.DbMigrator
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With