How can I disable model compatibility checking in Entity Framework 4.3?

15.5k Views Asked by At

I'm working with EF 4.3 and have a context which needs to talk to a database which was generated by another library using EF Code First 4.3. The context is throwing an exception stating

The model backing the 'Context' context has changed since the database was created. Consider using Code First Migrations to update the database

In EF 4.1 this could be diabled by removing the IncludeMetadataConvention from the ModelBuilder. However, in 4.3 this convention has been deprecated and no longer has an effect.

How can I have an EF 4.3 context talk to an EF 4.3-generated database built by a different context? The only option I've found (which is far from ideal) is to delete the metadata table, thereby causing both contexts to assume the database was not build by EF.

PS: I know this scenario is likely to raise questions about why I need to do this; I know it's far from ideal, but rest assured it's a problem I need to solve and have limited options to work with laterally.

2

There are 2 best solutions below

5
On BEST ANSWER

Setting the initializer to null will skip the model compatibility check.

Database.SetInitializer<MyContext>(null);
0
On

For EF 4.3 or higher

Database.SetInitializer<MLTServerWatcherContext>(null);

Or if using older version of EF

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

(I know he said he are using EF 4.3, but i think it's good to show this option too)