18.翻译系列:EF 6 Code-First 中的Seed Data(种子数据或原始测试数据)【EF 6 Code-First系列】
程序员文章站
2022-06-18 08:21:38
原文链接:https://www.entityframeworktutorial.net/code-first/seed-database-in-code-first.aspx 你可以在数据库初始化的过程中,插入数据到数据库。当你想要给你的应用程序设置一些测试数据或者一些基本数据,这是很重要的一个方 ......
原文链接:
你可以在数据库初始化的过程中,插入数据到数据库。当你想要给你的应用程序设置一些测试数据或者一些基本数据,这是很重要的一个方法。
为了插入原始数据到数据库,你需要创建一个自定义的数据库初始化策略,并且重写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; } }
推荐阅读
-
5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列)
-
9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列)
-
18.翻译系列:EF 6 Code-First 中的Seed Data(种子数据或原始测试数据)【EF 6 Code-First系列】
-
5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列)
-
9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列)
-
18.翻译系列:EF 6 Code-First 中的Seed Data(种子数据或原始测试数据)【EF 6 Code-First系列】