关于ASP.NET MVC 数据迁移总结

        当程序开始运行之后,会自动生成实体模型对应的表,当对实体模型进行修改时,需要更新对应的数据库表,这时就需要使用数据库迁移来更新数据库的表结构。

        数据库迁移的步骤是:

        1、点击工具->NuGet包管理器->程序包管理器控制台

 2、在打开的控制台输入enable-migrations开始数据迁移,进行迁移配置

在资源管理器可以看到生成了Migrations文件夹以及两个.cs文件

关于Configuration.cs:

在此文件中可以看到Seed方法,Seed 方法的目的是在 Code First 创建或更新数据库后插入或更新的测试数据。

Seed 方法将数据库上下文对象作为输入参数,该方法中的代码使用该对象向数据库添加新实体。 对于每个实体类型,代码将创建一组新实体,将它们添加到相应的 DbSet 属性,然后将更改保存到数据库。

使用的AddOrUpdate方法,目的在于当实体已经在数据库存在时,用于修改该实体,Seed因为每次执行update-database命令时,方法都会运行,通常在每个迁移后,你不能只插入数据,因为尝试添加的行在创建数据库的第一次迁移之后就已存在。 如果尝试插入已存在的行,则会阻止出现“upsert”操作,会停止测试应用程序时可能对数据所做的任何更改。

传递给 AddOrUpdate 方法的第一个参数指定用于检查行是否存在的属性。

3、开始数据迁移,在控制台输入Add-migration [自定义版本名称]

在 Migrations文件夹生成了202210100802065_Record.cs文件

执行Add-migration [自定义版本名称]命令时,迁移会生成从头开始创建数据库的代码。 此代码还位于 Migrations 文件夹中,名为 <timestamp>_自定义版本名称.cs 的文件中。 类中 Up 的方法创建对应于数据模型实体集的数据库表,这里的Down函数简单介绍就是:为了回滚修改而设计的。如果用户希望恢复到某一个迁移节点,程序会自动根据已经执行的迁移,判断回滚哪些迁移,执行他们的Down函数。。

 4、最后update-database

update-database 命令运行 Up方法以创建数据库,然后运行 Seed 方法以填充数据库。

更多可以阅读大神的文章:(译)给ASP.NET MVC 创建一个实体数据模型(一) - 清语堂 - 博客园

写的非常详细

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值