I am attempting to add Entity Framework, code first, to an MVC application that’s been running with test data, using the CTP4 preview.
I am currently getting this error:
The model backing the ‘SchedulerContext’ context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the RecreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data.
I do not want to generate a database at all, as I already have a database. So I tried adding the following to the SchedulerContext constructor:
Database.SetInitializer<SchedulerContext>(new CreateDatabaseOnlyIfNotExists<SchedulerContext>());
which had no effect at all — I got the same error the next time it ran. The error seems to occur when it is executing a LINQ statement that accesses the database — the first, I think.
Where should I put this statement, or is this statement the answer to this problem at all?
Update
I simply glossed over the fact you already have a database and don’t want to create another one…in that case the answer is to put this in your SchedulerContext class
Old answer
You usually put it in the Global.asax
Note that it will only be initialized on first use of the data context.
Update
Then you modify the SetInitializer like so.