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.

Admin

Latest posts by Admin (see all)
- Libreria de flujo de datos en C# (TPL Dataflow) - 6 noviembre, 2019
- Principio de Responsabilidad simple (Single Responsibility) - 19 agosto, 2019
- SOLID, cinco principios básicos de diseño software (SOLID Design Principles) - 7 agosto, 2019