我正在使用asp.net mvc。我正在尝试实现Code-First Entity Model。我已经完成了以下步骤,
1,我创建了一个student.cs类
public class Student
{
public int StudentID { get; set; }
public string StudentName { get; set; }
public string Branch { get; set; }
public decimal Marks { get; set; }
public string Address { get; set; }
}
2,我有类似的上下文类,
public class StudentContext:DbContext
{
public StudentContext()
{
Database.SetInitializer(new StudentContextInitializer());
}
public DbSet<Student> Student { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
3,我创建了studentcontextinitializer类,如
public class StudentContextInitializer : DropCreateDatabaseIfModelChanges<StudentContext>
{
protected override void Seed(StudentContext context)
{
context.Student.Add(new Student { StudentName="madhav",Branch="CSE",Marks=888,Address="AKP" });
context.Student.Add(new Student { StudentName = "Tirumalesh", Branch = "IT", Marks = 988, Address = "MDP" });
context.Student.Add(new Student { StudentName = "Venkat", Branch = "ECE", Marks = 1000, Address = "BZA" });
context.SaveChanges();
}
}
我已成功连接到数据库,但我无法使用某些数据初始化dbcontext,这意味着我已在studentcontextinitializer类中对某些记录进行了硬编码,但我无法将这些记录绑定到数据库表中。所以请指导我。
答案 0 :(得分:2)
您的DropCreateDatabaseIfModelChanges
只会在您更改模型时初始化数据库。你有几个选择:
public string test { get; set; }
添加到Student
实体并重新运行。DropCreateDatabaseAlwaysInitializer
扩展您的初始化程序。这将导致每次重建和重新运行应用程序时都会删除,重新创建和播种数据库。