我有一个包含2个属性的类:Value
和Description
。将这2个属性添加到该类中后,又进行了几次迁移,从来没有问题。
今天,在分支上工作时,我注意到当我添加新的Migration时,它被脚手架再次添加列,因此我开始进行一些测试。
从当前基准开始,没有任何实体更改,如果我添加一个名为“ Test”的迁移,则会得到以下信息:
using Microsoft.EntityFrameworkCore.Migrations;
namespace AgWare.Data.Migrations
{
public partial class Test : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
这是正确的,我尚未对模型进行任何更改。 Git仅显示新的Migration及其添加的Designer.cs文件,而不对快照进行任何更改。现在,如果我运行“删除迁移”,则删除了“测试迁移”,但是Git突然说我的快照已更改,从上述类的modelBulder
条目中删除了以下几行:
b.Property<decimal?>("Value")
.HasColumnType("Money");
b.Property<string>("Description")
.HasMaxLength(75);
因此,删除与这些属性无关的迁移会以某种方式导致更新快照以反映出由于某些原因已将其删除。这意味着当我添加另一个迁移时,它将生成代码以再次创建这些列,因为它们已经存在,将无法使用。这可能是什么原因?我现在想弄清楚这一点,这样就不会在以后的所有迁移中再次出现。