¿Cómo puedo deshabilitar el uso de la tabla __MigrationHistory en Entity Framework 4.3 Code First?
Estoy usando Entity Framework 4.3 Code First con un inicializador de base de datos personalizado como este:
public class MyContext : DbContext
{
public MyContext()
{
Database.SetInitializer(new MyContextInitializer());
}
}
public class MyContextInitializer : CreateDatabaseIfNotExists<MyContext>
{
protected override void Seed(MyContext context)
{
// Add defaults to certain tables in the database
base.Seed(context);
}
}
Cada vez que mi modelo cambia, edito mis POCO y asignaciones manualmente y actualizo mi base de datos manualmente.
Cuando vuelvo a ejecutar mi aplicación, recibo este error:
Error del servidor en la aplicación '/'.El modelo que respalda el contexto 'MyContext' ha cambiado desde que se creó la base de datos. Considere el uso de Code First Migrations para actualizar la base de datos (http://go.microsoft.com/fwlink/?LinkId=238269).Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.
Detalles de la excepción: System.InvalidOperationException: el modelo que respalda el contexto 'MyContext' ha cambiado desde que se creó la base de datos. Considere el uso de Code First Migrations para actualizar la base de datos (http://go.microsoft.com/fwlink/?LinkId=238269).
Al usar EFProfiler, también me doy cuenta de que estas consultas se están ejecutando:
-- statement #1
SELECT [GroupBy1].[A1] AS [C1]
FROM (SELECT COUNT(1) AS [A1]
FROM [dbo].[__MigrationHistory] AS [Extent1]) AS [GroupBy1]
-- statement #2
SELECT TOP (1) [Project1].[C1] AS [C1],
[Project1].[MigrationId] AS [MigrationId],
[Project1].[Model] AS [Model]
FROM (SELECT [Extent1].[MigrationId] AS [MigrationId],
[Extent1].[CreatedOn] AS [CreatedOn],
[Extent1].[Model] AS [Model],
1 AS [C1]
FROM [dbo].[__MigrationHistory] AS [Extent1]) AS [Project1]
ORDER BY [Project1].[CreatedOn] DESC
¿Cómo puedo prevenir esto?