如何将现有表包含到MVC5 IdentityModeld.cs ApplicationDbContext中并禁用迁移?

时间:2014-04-18 07:02:25

标签: c# ef-code-first asp.net-mvc-5 entity-framework-6

Bellow my MVC5 App IdentityModeld.cs:

public class ApplicationUser : IdentityUser {
    public int StaffId { get; set; }
}

//public class ApplicationDbContext : 
//IdentityDbContext<User, UserClaim, UserSecret, UserLogin, Role, UserRole> {
//original: http://www.briankeating.net/?tag=/IdentityDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> {

    public ApplicationDbContext() : base("DefaultConnection") {
        //Database.SetInitializer<ApplicationDbContext>(null);
        //Configuration.AutoDetectChangesEnabled = false;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder) {
        //modelBuilder.Ignore<Staff>();
        //base.OnModelCreating(modelBuilder);
    }

    // dublicate from another DbContext
    //public DbSet<Staff> Person { get; set; }
} 

注释行会导致错误:

  

支持'ApplicationDbContext'上下文的模型已经改变了   数据库已创建......

我不需要迁移。我的数据库或模型没有变化。我可以按原样从数据库添加到现有ApplicationDbContext现有表吗? 我的数据库中没有__MigrationHistory表。

1 个答案:

答案 0 :(得分:0)

您需要通过添加空迁移来将“内部EF”中存储的shema更新为当前的shema 在程序包管理器控制台中执行以下命令:

Add-Migration Initial -IgnoreChanges

这应该创建一个新的迁移,其中包含EF的更新shema,但是空UpDown方法。