获取错误“自创建数据库以来,支持'DBContext'上下文的模型已发生变化。”

时间:2014-10-13 08:23:47

标签: entity-framework ef-migrations

我知道这个问题是重复我也找到了一个解决方案,但这是一个四年前的问题,我认为这些年来EntityFramework处于不同的水平,所以我想再问这个问题。这是我找到的答案,并尝试在实体框架5.0上应用但不起作用

The model backing the <Database> context has changed since the database was created

这是我的实体模型类,第一个是这个

    public class Student
{
    public int StudentId {get; set;}
    [StringLength(250),Required]
    public string StudentName {get; set;}
    [StringLength(20),Required]
    public string Standard {get; set; }
    [StringLength(250),Required]
    public string Address {get; set; }
    [StringLength(250),Required]
    public string Emailid {get; set; }
    [StringLength(12),Required]
    public string Phoneno {get; set; }

}

和第二个模型类就是这个

    public class Marks
{

    public int MarksID { get; set; }
    public int StudentId { get; set; }
    public int English { get; set; }
    public int Maths { get; set; }
    public int Science { get; set; }
    public int SocialStudy { get; set; }
    public int Hindi { get; set; }
    public int Total { get; set; }
    public Student student { get; set; }

}

这是我的上下文类

 public class DBContext:DbContext
{
    public DBContext()
    {
        Database.SetInitializer<DbContext>(new DropCreateDatabaseAlways<DbContext>());
    }

    public DbSet<Student> TbStudent { get; set; }
    public DbSet<Marks> TbMarks { get; set; }
}

我运行此代码并获取此错误

自创建数据库以来,支持'DBContext'上下文的模型已更改。考虑使用Code First Migrations来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

请专家帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

代码首次迁移将帮助您解决案例。但是,为了继续初始化数据库,您必须在DB.StextInitializer函数中用DBContext(即您的上下文类)替换DbContext。

  public class DBContext:DbContext
  {
       public DBContext()
       {
           Database.SetInitializer<DBContext>(new DropCreateDatabaseAlways<DBContext>());
       }
   }

希望这有帮助。