c# .net entity-framework entity-framework-4.3

c# - ¿Cómo puedo desactivar la comprobación de compatibilidad de modelos en Entity Framework 4.3?



.net entity-framework (2)

Estoy trabajando con EF 4.3 y tengo un contexto que necesita hablar con una base de datos que fue generada por otra biblioteca usando EF Code First 4.3. El contexto está arrojando una excepción que indica

El modelo que respalda el contexto ''Contexto'' ha cambiado desde que se creó la base de datos. Considere usar Code First Migrations para actualizar la base de datos

En EF 4.1 esto podría ser diableado al eliminar IncludeMetadataConvention de ModelBuilder. Sin embargo, en 4.3 esta convención ha quedado en desuso y ya no tiene un efecto.

¿Cómo puedo tener una conversación contextual de EF 4.3 con una base de datos generada por EF 4.3 creada por un contexto diferente ? La única opción que he encontrado (que está lejos de ser ideal) es eliminar la tabla de metadatos, provocando que ambos contextos asuman que la base de datos no fue construida por EF.

PD: Sé que este escenario probablemente plantee preguntas sobre por qué tengo que hacer esto; Sé que está lejos de ser ideal, pero tenga la seguridad de que es un problema que necesito resolver y tengo opciones limitadas para trabajar con lateralmente.


Establecer el inicializador como null omitirá la verificación de compatibilidad del modelo.

Database.SetInitializer<MyContext>(null);


Para EF 4.3 o superior

Database.SetInitializer<MLTServerWatcherContext>(null);

O si usa una versión anterior de EF

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

(Sé que dijo que está usando EF 4.3, pero creo que es bueno mostrar esta opción también)