我正在尝试在mvc中创建一个小型测试站点。 我已将模型创建为:
public class Subject_Master
{
public Subject_Master()
{
}
public Subject_Master(string Subject_Name)
{
this.Subject_Name = Subject_Name;
}
public int Subject_MasterId { get; set; }
public string Subject_Name { get; set; }
}
背景是:
public class MyContext : DbContext
{
public DbSet<StudentAccount> StudentAccount { get; set; }
public DbSet<Subject_Master> Subject_Master { get; set; }
}
初始化程序:
namespace MyProj.Models
{
public class DBInitializer:DropCreateDatabaseIfModelChanges<XpertsContext>
{
protected override void Seed(XpertsContext context)
{
var Subject_Master_List = new List<Subject_Master>();
Subject_Master_List.Add(new Subject_Master("English"));
Subject_Master_List.Add(new Subject_Master("Hindi"));
Subject_Master_List.Add(new Subject_Master("Bengali"));
foreach (var subject in Subject_Master_List)
{
context.Subject_Master.Add(subject);
}
context.SaveChanges();
}
}
}
已创建数据库,但未插入数据。
我做错了什么?
答案 0 :(得分:2)
您似乎忘记使用您编写的此DBInitializer
课程。在Application_Start
中,您可以使用SetInitializer
静态方法指定所需的初始化程序:
Database.SetInitializer(new DBInitializer());
另外请不要忘记,初始化程序的Seed
方法将在第一次针对MyContext
进行查询时调用,而不是在应用程序启动时调用。
或者,您可以在web.config文件中指定初始化程序,如here
所示。