我知道这个问题是重复我也找到了一个解决方案,但这是一个四年前的问题,我认为这些年来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)。
请专家帮我解决这个问题
答案 0 :(得分:0)
代码首次迁移将帮助您解决案例。但是,为了继续初始化数据库,您必须在DB.StextInitializer函数中用DBContext(即您的上下文类)替换DbContext。
public class DBContext:DbContext
{
public DBContext()
{
Database.SetInitializer<DBContext>(new DropCreateDatabaseAlways<DBContext>());
}
}
希望这有帮助。