asp.net mvc 5中的数据库初始化失败

时间:2016-05-08 14:01:04

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我正在尝试在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();
        }
    }
}

已创建数据库,但未插入数据。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您似乎忘记使用您编写的此DBInitializer课程。在Application_Start中,您可以使用SetInitializer静态方法指定所需的初始化程序:

Database.SetInitializer(new DBInitializer());

另外请不要忘记,初始化程序的Seed方法将在第一次针对MyContext进行查询时调用,而不是在应用程序启动时调用。

或者,您可以在web.config文件中指定初始化程序,如here所示。