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>()); //注册数据库初始化

  

posted @ 2020-02-22 18:01  清语堂  阅读(161)  评论(0编辑  收藏  举报