实体框架代码第一次更新 - 数据库不采用我的初始化程序代码?

时间:2015-02-28 08:25:01

标签: c# entity-framework

我的问题是,当我运行我的网络应用程序(并删除数据库)时,我的数据库初始化程序工作正常,但是当我输入Add-Migration Initial& Update-Database,只创建没有初始化数据的数据库!!

我有以下代码: (这是在PROJ1.EF项目中)

public class StudentsContext : DbContext
    {
        public virtual DbSet<Student> Students { get; set; }

        public StudentsContext ()
            : base("StudentsContext")
        {
            Database.SetInitializer<StudentsContext>(new StudentsContextInitializer());
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }

以下是我的StudentsContextInitializer

public class StudentsContextInitializer : DropCreateDatabaseAlways<StudentsContext>
{
        protected override void Seed(StudentsContext context)
        {
            var students = new List<Student>
            {
                new Student("Alex ABC"),
                new Student("John Doe")
            };

            students.ForEach(s => context.Students.Add(s));
            context.SaveChanges();

            base.Seed(context);
        }
}

我的web.config在其<entityFramework>标记中包含以下条目: (这是在PROJ1.Web项目中)

<contexts>
  <context type="PROJ1.EF.StudentContext, PROJ1.EF">
    <databaseInitializer type="PROJ1.EF.StudentsInitializer, PROJ1.EF" />
  </context>
</contexts>

请帮忙。

0 个答案:

没有答案