[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 252
  • Last Modified:

update an sql server database using entity framework code first migration

Hi.
I have an application that uses a local database. And I have something like 300 databases to update. All of them in remote places.
I then created an application that has two projects. a model with the database tables and another to the context ..
then follow the sequence:
1. the development machine ran the application. that's perfect. created the database.
2. altered a model class.
3. ran the "enable-migrations"
3. ran the "add-migration class1"
4. I ran the "update-database"

worked perfectly.

copied the compiled application and took her to a remote machine. I ran the application and it worked perfectly.

I returned the development machine and changed a new class. performed the following:
1. "add-migration class2"
2. "update-database"

worked perfectly.

I copied the compiled application and took to the remote machine (the same) and ran the program and get an exception saying that the context has changed since the database was created and that I must consider the code first migration.

I will use the program exactly not to need the presence on site.

Where am I going wrong?
0
Deraldo Silva
Asked:
Deraldo Silva
  • 4
1 Solution
 
Easwaran ParamasivamCommented:
Could you please put exact exception you got?
0
 
Deraldo SilvaAuthor Commented:
Sure.

Unhandled Exception: System.InvalidOperationException: The model backing the 'Db
BancoContexto' context has changed since the database was created. Consider usi
ng Code First Migrations to update the database (http://go.microsoft.com/fwlink/
?LinkId=238269).
   at System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext
 context)
   at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf`1.<CreateIn
itializationAction>b__e()
   at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Ac
tion action)
   at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization(
)
   at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(I
nternalContext c)
   at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
   at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(A
ction`1 action)
   at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType
(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, Ent
ityState newState, Object entity, String methodName)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
   at System.Data.Entity.DbSet`1.Add(TEntity entity)
   at GenerateDatabase.Program.Main(String[] args) in c:\Projects\GenerateDataba
se\GenerateDatabase\Program.cs:line 19
0
 
Deraldo SilvaAuthor Commented:
Hi.

If I use this Database.SetInitializer<DbBancoContexto>(null); the application runs but the migration is not applied. If I take it off, I got the error above.
0
 
Deraldo SilvaAuthor Commented:
This works.

very nice. thx to "tilde" @internet.

Database.SetInitializer<DbBancoContexto>(new MigrateDatabaseToLatestVersion<DbBancoContexto, GenerateDatabase.Migrations.Configuration>());

Open in new window

0
 
Deraldo SilvaAuthor Commented:
I do not want the credit for the solution. I am just setting as solution for someone use.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now