Como posso desabilitar o uso da tabela __MigrationHistory no código do Entity Framework 4.3 primeiro?
Estou usando o Entity Framework 4.3 Code First com um inicializador de banco de dados 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);
}
}
Sempre que meu modelo muda, eu edito meus mapeamentos e mapeamentos manualmente e atualizo meu banco de dados manualmente.
Quando executo meu aplicativo novamente, recebo este erro:
Erro de Servidor na '/' Aplicação.O modelo que suporta o contexto 'MyContext' mudou desde que o banco de dados foi criado. Considere o uso do Code First Migrations para atualizar o banco de dados (http://go.microsoft.com/fwlink/?LinkId=238269).Descrição: Uma exceção não tratada ocorreu durante a execução da solicitação da web atual. Revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele foi originado no código.
Detalhes da Exceção: System.InvalidOperationException: O modelo que suporta o contexto 'MyContext' foi alterado desde a criação do banco de dados. Considere o uso do Code First Migrations para atualizar o banco de dados (http://go.microsoft.com/fwlink/?LinkId=238269).
Usando o EFProfiler, também noto essas consultas sendo executadas:
-- 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
Como posso evitar isso?