Entity FrameWork Code First 之 MVC4 数据库初始化策略用法
https://www.cnblogs.com/xcong/p/3524598.html
通过启用迁移和更新数据库可以很容易的生成一张表。但是对数据库修改之后,通过数据迁移就没那么好实现了。
这里用到数据库生成策略,进行对数据库操作:
一、3种主要数据库生成策略
Global.asax:Application_Start()方法中添加:
Database.SetInitializer(new CreateDatabaseIfNotExists<ManagementDBContext>());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ManagementDBContext>());
Database.SetInitializer(new DropCreateDatabaseAlways<ManagementDBContext>());
生成数据库的时刻:
public ActionResult Index() { using (ManagementDBContext db = new ManagementDBContext()) { var result = db.Permissions.ToList(); } return View(); }
二、自定义生成策略
自定义策略主要用的自定义策略中重写的Seed方法。
可以在Seed方法中加一些初始数据,这样生成的时候就会生成初始数据。
public class ManagementDBContextInitializer : DropCreateDatabaseAlways<ManagementDBContext>
{
protected override void Seed(ManagementDBContext context)
{var roles = new List<Role>
{
new Role{
RoleName="超级管理员",
Description="Administrator"
},
new Role{
RoleName="普通管理员",
Description="Admin"
}
};
roles.ForEach(l => context.Roles.Add(l));
base.Seed(context);
} }
Database.SetInitializer<ManagementDBContext>(new ManagementDBContextInitializer<ManagementDBContext>()); //注册数据库初始化