我一直在阅读并开始使用 Entity Framework Code-First。它在我的本地机器(DefaultConnection)上运行良好,但它似乎已经停止在我的生产服务器上运行(来自 AppHarbor 的 SQL Server 插件)。
我注意到的一件事是 __MigrationHistory 文件夹没有作为系统表隐藏。
我一直在使用AppHarbor 的博客上描述的自动迁移方法。
这是我的 DatabaseContext 类:
public class DatabaseContext : DbContext {
public DatabaseContext() : base("DefaultConnection") { }
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<Challenge> Challenges { get; set; }
public DbSet<Feedback> Feedbacks { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseContext, Configuration>());
}
}
我想让代码优先在 appharbor 数据库上再次工作。有没有办法重新启用它,或者我应该删除所有生成的迁移类和 __MigrationHistory 并通过临时更改OnModelCreating
构造函数以使用DropCreateDatabaseAlways
初始化程序来重新创建数据库?重置迁移并从当前编写的代码开始它们的更好方法是什么?