18.翻译系列:EF 6 Code-First 中的Seed Data(种子数据或原始测试数据)【EF 6 Code-First系列】

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

 

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

 

 

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

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

下面的代码,展现了当数据库初始化的时候,向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); } }

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

public class SchoolContext: DbContext { public SchoolContext(): base("SchoolDB") { Database.SetInitializer(new SchoolDBInitializer()); } public DbSet<Student> Students { get; set; } public DbSet<Standard> Standards { get; set; } }
相关文章
相关标签/搜索