【问题标题】:Entity Framework new table实体框架新表
【发布时间】:2013-10-27 14:46:33
【问题描述】:

我将项目从 Entity Framework 5 更新到 6,当我开始我的项目时,会在 db 中创建一个新表:dbo.__MigrationHistory。我首先使用代码,我猜这是为了跟踪历史,对吧?

这不是在 EF 5 中创建的。

如何防止创建此表?

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework entity-framework-5


    【解决方案1】:

    当针对数据库运行自动更新时,他们应该应用他们可以找到的所有更改。数据库上有一个名为迁移历史的系统表可以帮助解决这个问题。 您可以操作迁移表,但我不确定您是否可以禁用创建它。 看这个链接http://entityframework.codeplex.com/wikipage?title=Migrations%20History%20Table%20Customization

    【讨论】:

    • 在我今天迁移到 EF6 并启动项目之后,该表之前 (EF5) 不存在,该表只是显示出来......相同的代码在解决方案中没有变化......
    【解决方案2】:

    实体框架规范之一是幂等迁移脚本

    很明显包管理器已经启用-迁移 所以你必须使用

    禁用它
     AutomaticMigrationsEnabled = false;
    

    然后设置你的初始化器

    Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists());
    

    【讨论】:

      【解决方案3】:

      在 Entity Framework 5 中,该表是系统表,如果应用程序 使用 Microsoft Sql Server 数据库。这在实体中发生了变化 框架 6

      Code First 需要 Migration History 表,因此您无法删除它,但您可以自定义它

      参考:Customizing the Migrations History Table

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多