How to fix the Model compatibility cannot be checked because the database does not contain model metadata problem with Entity Framework Code First How to fix the Model compatibility cannot be checked because the database does not contain model metadata problem with Entity Framework Code First

How to fix the Entity Framework Code First problem – Model compatibility cannot be checked because the database does not contain model metadata problem

The Problem

So, you are tooling around in asp.net mvc 3 Entity Framework Code First, and you make a change to your underlying model.  you then get the following error when Entity Framework tries to recreate the database in Sql Server or Sql Server Express

Model compatibility cannot be checked because the database does not contain model metadata. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions.

The Cause

You still have some lock on the database in some way, perhaps you still have the database open in Visual Studio (it is very easy to do this in Visual Studio 2010) or perhaps you have it open in a Sql Server Management Studio window.  Perhaps Windows just doesn’t like you.  In any case, it’s that database is open, and Entity Framework Code First will not drop the database if anyone is still using it.

The Solution

You have to release all locks and holds on the database before Entity Framework Code First will drop the database.  To do that, open up Sql Server Management Studio and paste in the following code

USE [master]
GO

/****** Object: Database [MyDBname] Script Date: 02/24/2012 13:54:40 ******/
ALTER DATABASE [MyDBname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [MyDBname] SET SINGLE_USER WITH NO_WAIT
DROP DATABASE [MyDBname]
GO

That will isolate your database (please note that “MyDBName” is where you should put your database name) and allow Entity Framework CodeFirst to drop and recreate the database and implement your changes.  Doing this WILL drop the database, so be careful.

 

Written By Steve French

 

3 responses to “How to fix the Entity Framework Code First problem – Model compatibility cannot be checked because the database does not contain model metadata problem”

  1. What can be done, when you do not have the permission to drop the database – e.g. in a hosting scenario?

Leave a Reply

Your email address will not be published. Required fields are marked *






Copyright 2011 Digital Tool Factory. All Rights Reserved. Powered by raw technical talent. And in this case, WordPress.