相关疑难解决方法(0)

如何在Entity Framework 4.3 Code First中禁用__MigrationHistory表的使用?

我正在使用Entity Framework 4.3 Code First和一个自定义数据库初始化程序,如下所示:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

每当我的模型发生变化时,我都会手动编辑POCO和映射,并手动更新数据库.

当我再次运行我的应用程序时,我收到此错误:

'/'应用程序中的服务器错误.

自创建数据库以来,支持"MyContext"上下文的模型已更改.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息: System.InvalidOperationException:自创建数据库以来,支持"MyContext"上下文的模型已更改.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).

使用EFProfiler,我还注意到这些查询正在执行:

-- 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 …
Run Code Online (Sandbox Code Playgroud)

ef-code-first ef-migrations entity-framework-4.3

11
推荐指数
1
解决办法
1万
查看次数