Question

In my application I enable Code First Migrations with some migrations, Also I use SQL Server Compact for integration test.

When I run my tests, Entity Framework create an empty database and tries to run migration on that empty database and thrown The specified table does not exist.

Based on this report I think usage of Migration in Entity Framework 6 has changed.

I test all Database Initializer with Context.Database.Create(); but in all case tabale's never created.

Was it helpful?

Solution

I don't know that this is EntityFramework's bug or not, but when I made rename the namespace of Migration Configuration class from default (Projectname/Migrations) to any none default name, migration works well.

OTHER TIPS

Context.Database.Create() will not execute migrations! It only creates empty db. To Update database from code to latest version you need to use DbMigrator.Update method:

var migrator = new DbMigrator(new MyMigrationsConfiguration());
migrator.Update();

Alternatively you might use MigrateDatabaseToLatestVersion

Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>());

It is described in details here: http://msdn.microsoft.com/en-us/data/jj591621.aspx#initializer

In case someone still struggles to fix the issue.

The code that follows works for me: add-migration MyFirstMigration

Meanwhile add-migration "MyFirstMigration" with the migration name ramped in quote doesn't work.

There may be previous migration files which the ide may be referring to mostly likely due to caching. Drop backup and drop target database if it exists, and drop the migration folder. Now add the migration and you will be good to go.

It does happens when adding model and running add-migration command.

Here is the simplest cause of this issue:

Add a newly added model property into IdentityDbContex class.

Here are the steps:

  1. create model
  2. add property into IdentityDbContex class
  3. run add-migration
  4. update-database
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top