用ASP.Net core开发系统,需要更改数据库字段的操作问题(Mac系统)

最近在尝试使用ASP.NET core编写一个程序。

主要参考下面的链接:

https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/new-field?view=aspnetcore-2.2&tabs=visual-studio-code

但是在修改DB字段的时候,发现如果使用code first的方式,数据库总是不能更新,总结下来。如果需要更新DB结构,需要如下步骤:我是在Mac下进行下面操作的。如果是windows环境,可以采用其他方式。

1)删除当前DB(MvcMovie.db),在项目根目录下找到db文件,直接删除;

2)在terminal中,转到当前项目目录,并且删除当前的migration:

cd aspnetcoreapp

dotnet ef migrations remove

3)创建新的migration

dotnet ef migrations add InitialCreate

创建后,

Migrations目录下的项目添加以下三个文件:

  • XXXXXXXXXXXXXX_InitialCreate.cs - 主迁移文件。 包含应用迁移所需的操作(在 Up() 中)和还原迁移所需的操作(在 Down() 中)。
  • XXXXXXXXXXXXXX_InitialCreate.Designer.cs - 迁移元数据文件。 包含 EF 所用的信息。
  • MyContextModelSnapshot.cs--当前模型的快照。 用于确定添加下一迁移时的更改内容

打开这些文件,确认新加的字段已经在文件中存在。

4)更新DB

dotnet ef database update

在Terminal中可以查看生成的SQL,确认新的字段是否包含在SQL中。

如果发现没有包含,只能辛苦重复上述步骤:1)2)3)4)

在Mac中我发现的问题是,即使在3)中的cs文件已经能看到新的字段。在4)中,仍然没有新的字段生成。在这种情况下,只能重复上述的删除->创建的步骤。应该是VS的bug。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值