原文链接:https://www.entityframeworktutorial.net/code-first/seed-database-in-code-first.aspx

 

EF 6 Code-First系列文章目录:

 

 

你可以在数据库初始化的过程中,插入数据到数据库。当你想要给你的应用程序设置一些测试数据或者一些基本数据,这是很重要的一个方法。

为了插入原始数据到数据库,你需要创建一个自定义的数据库初始化策略,并且重写Seed方法。

下面的代码,展示了当数据库初始化的时候,向Standard表插入一下默认的数据:

public class SchoolDBInitializer : DropCreateDatabaseAlways<SchoolDBContext>
{
    protected override void Seed(SchoolDBContext context)
    {
        IList<Standard> defaultStandards = new List<Standard>();

        defaultStandards.Add(new Standard() { StandardName = "Standard 1", Description = "First Standard" });
        defaultStandards.Add(new Standard() { StandardName = "Standard 2", Description = "Second Standard" });
        defaultStandards.Add(new Standard() { StandardName = "Standard 3", Description = "Third Standard" });

        context.Standards.AddRange(defaultStandards);

        base.Seed(context);
    }
}

然后,在上下文类中设置自定义的数据库初始化策略类;

public class SchoolContext: DbContext 
{
    public SchoolContext(): base("SchoolDB") 
    {
        Database.SetInitializer(new SchoolDBInitializer());
    }
    
    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
}

 

相关文章:

  • 2021-10-13
  • 2022-01-25
  • 2021-05-29
  • 2021-07-01
  • 2021-06-29
  • 2021-08-30
  • 2021-06-15
  • 2021-05-23
猜你喜欢
  • 2019-03-31
  • 2021-09-14
  • 2019-03-31
  • 2021-05-31
  • 2022-03-09
  • 2021-09-15
  • 2021-08-28
相关资源
相似解决方案