0

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

这不是在 EF 5 中创建的。

如何防止创建此表?

4

3 回答 3

0

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

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

参考:自定义迁移历史记录表

于 2013-10-28T10:10:32.643 回答
0

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

于 2013-10-27T18:35:53.543 回答
0

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

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

 AutomaticMigrationsEnabled = false;

然后设置你的初始化器

Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists());
于 2013-10-27T20:21:37.240 回答