EF Code First 数据库添加初始数据

本文介绍了如何在使用Entity Framework Code First时添加初始数据。通过覆盖DbContext的CreateDatabaseIfNotExists策略,并创建自定义的DatabaseInitializer类,可以在不丢失已有数据的情况下更新数据库结构。在Global.asax中设置Database.SetInitializer来启用这个初始化过程。
摘要由CSDN通过智能技术生成

在使用EF Code First的时候可以通过代码自动生成数据库,然而一般系统生成的数据库需要有初始数据

在继承DbContext类中覆盖默认CreateDatabaseIfNotExists策略


        public Db()
            :  base("name = DynamicForm") // 这里的name必须和Web.config里面的相同
        {
            //那么无论什么时候更新实体模型,EF都会自动地更新数据库模式。这里很重要的一点是,这种策略更新数据库模式不会丢失数据,或者是在已有的数据库中更新已存在的数据库对象。
            // 覆盖默认的CreateDatabaseIfNotExists初始器
            // 需要两个参数,第一个参数为继承DbContext的类, 第二个参数为Migrations中的配置类
            Database.SetInitializer<Db>( new MigrateDatabaseToLatestVersion<Db,Migrations.Configuration>() );
        }

 

Migrations.Configuration

 public Configuration()
        {
            AutomaticMigrationsEnabled = true; // 自动迁移
            ContextKey = "RestfulDynamicForm.Models.Db";
        }

这里的目的是当更改数据库结构的时候,直接在原有数据库保存数据的前提下更新结构,

首先创建一个类名为DatabaseInitializer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值