为什么C#Entity Framework继续恢复到初始迁移点

时间:2016-02-01 14:48:38

标签: c# entity-framework

我似乎无法弄清楚为什么EF会一直回复到第一个迁移点。它丢弃了我的大部分表格,当然所有数据都会被还原。

我很好地处理了如何跟踪和更新迁移,但似乎在我的DBMigration配置中完全忽略了以下配置选项。

Not a directory - target/latest.tar.gz

我一直在将它部署到我们的服务器上,并且有时候服务器上的二进制文件与本地开发区域不匹配。我在这里错过了什么吗?

为什么AutomaticMigrationsEnabled / AutomaticMigrationDataLossAllowed不会阻止EF完全消灭我们的数据库?我不得不升级SQL许可证,因此我可以每隔30分钟进行一次自动备份,以免不断丢失数据。

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

如果您希望EF使用您的迁移,那么您需要选择Default constructor not found for type MyNamespace.PINControl类并将其指定为:

MigrateDatabaseToLatestVersion

然后EF将使用您指定的实际迁移和Database.SetInitializer(new MigrateDatabaseToLatestVersion<ProjectName.DAL.myDbcontext, Configuration>()); 设置。 如果您不想在代码中执行此操作,也可以在web.config中指定数据库初始化程序。

Configuration不会使用您的迁移。它只会验证数据库是否存在,如果不存在,那么它将根据您的DbContext创建它。使用迁移和配置文件的唯一初始化程序是CreateDatabaseIfNotExists

如果您不想使用全部迁移,那么是的,您可以指定不会做任何事情的MigrateDatabaseToLatestVersion甚至CreateDatabaseIfNotExists