The model backing the ‘xxx’ context has changed error
When using the code first of Entity Framework, the model backing the ‘xxx’ context has changed error will appear when the structure of the model is changed, because the structure of the model is inconsistent with that of the corresponding table in the database, so it cannot be modified directly
The solutions given on the Internet are as follows:
1–> Simply delete the database (including all the data in it), and then let code first use the default rule (no database – create new database) to create the database using the update model
This is obviously very troublesome
2–> Code first has a set of initialization strategies to use when encountering model changes. This behavior deletes the database and reconstructs it. By default, it is encapsulated in a class named createdatabaseifnotexists. You can tell which strategy is used by the executing program (here it means the console program)
In this way, you still have to delete and rebuild the database, and the cost is very high
3–> Need application in global.asax_ In the start method:
Database.SetInitializer< Models.XXXXDBContext>( null);
I haven’t tried this method. It should be aimed at MVC framework
Here I give a solution, which can also be found on the Internet:
1. Open the tool — > Nuget package manager — > Package manager console
2. In PM > After that, enter enable migrations – contexttypename databasename (if the execution fails, re-enter it with reference to the failure message, and the failure message is very clear; Databasename is the name of the database you generated). Then you find that a migrations folder has been added to the project, and some code has been generated automatically. Try to generate the code according to your model and changes
3. Set the code in the configuration file under the migrations folder: automaticmigration enabled = true; That is, change false to true
4. In PM > After that, enter add migration initialcreate
as the input
5. In PM > Later, update database – verb or update database – verb – force force force changes the database
After that, every time you change the model, you only need to change the model in PM > You can enter update database – verb – force later
Similar Posts:
- [Solved] DjangoORM Run python manage.py makemigrations Error: no changes detected
- How to Solve Django Error: No such column: xxx
- [Solved] django.db.utils.ProgrammingError: (1146, u”Table” xxx doesn’t exist”)
- windows homestead vagrant up: Warning: Authentication failure. Retrying…
- SQL statements generated by SQL compare
- efcore Add-Migration Error Solved (Three Errors to Solved)
- mysql ERROR 1044 (42000): Access denied for user ‘
- [Solved] Django Error: – no such table: main.auth_user__old
- [Solved] Windows 10 remote error: Oracle fix due to CredSSP encryption
- [Solved] ORA-27154: post/wait create failed ORA-27300 ORA-27301 ORA-27302