Como solucionar el problema de Entity Framework “Model compatibility cannot be checked because the database does not contain model metadata problem”

Problema

Cuando trabajamos con Entity Framework Code First y cambiamos algo en el modelo obtenemos el siguiente error cuando Entity Framework intenta recrear la base de datos en Sql Server o 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

Causa

Esto significa que tenemos algún bloqueo a nivel de la base de datos en alguna forma, puede ser que tengamos abierta la base de  datos en Visual Studio o quizás la tengamos abierta en una ventana de SQL Server Management Studio. Cualquiera sea el caso la base de datos esta abierta, y Entity Framework Code First no puede borrar la base de datos si esta en uso.

Solución

Debemos liberar todos los bloqueos de la base de datos antes que Entity Framework Code First borre la base de datos. Para hacer esto, debemos abrir SQL Server Management Studio y ejecutar el siguiente código:

USE [master]
GO

ALTER DATABASE [NombreBaseDatos] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [NombreBaseDatos] SET SINGLE_USER WITH NO_WAIT
DROP DATABASE [NombreBaseDatos]
GO

Este código aislará su base de datos (en ¨NombreBaseDatos¨ es donde debe poner su nombre de base de datos) y permitirá que Entity Framework Code First borre y recree la base de datos e implemente sus cambios.

Espero que les sea de ayuda, y esperamos sus comentarios o consultas.

 

The following two tabs change content below.
Admin

Admin

Administrador de Dotnetuy, con más de 20 años de experiencia en el mundo de la informática y el desarrollo de software en diferentes lenguajes, trabajando en backend y frontend, desde sus primeros pasos con clipper cuando comenzaba la década de los 90’s , y continuando con pascal, C, C++, Visual basic, y multiples gestores de bases de datos hasta hoy en día con C# y todas las técnologias relacionadas con .NET.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *