gpt4 book ai didi

.net - EFCore cli 生成无用的迁移

转载 作者:行者123 更新时间:2023-12-05 06:50:38 26 4
gpt4 key购买 nike

我有一个在表中创建列的迁移。

public partial class AddName : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Name",
table: "MyTable",
nullable: false,
defaultValue: "Value 1");
}

protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Name",
table: "MyTable");
}
}

我用它更新我的数据库。我生成了一个新的迁移。这最后一个应该是空的,但它包含一个无用的 AlterColumn

public partial class Test : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "MyTable",
nullable: false,
defaultValue: "Value 1",
oldClrType: typeof(string),
oldType: "nvarchar(max)");
}

protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "MyTable",
type: "nvarchar(max)",
nullable: false,
oldClrType: typeof(string),
oldDefaultValue: "Value 1");
}
}

要生成此迁移和更新数据库,我使用 dotnet-ef cli。

我检查了一下,发现两次迁移之间没有区别。当我使用 Test 迁移更新数据库时,没有任何更改应用于表。我还测试将我的数据库更新为 AddName 之前的迁移并重新创建它。但我有相同的结果。第二次迁移保持填充 AlterColumn

有人已经有这种奇怪的行为了吗?

最佳答案

问题是由更新 EF Core Tools 引起的到生成迁移之间的较新版本。使用不同版本的工具迁移生成的快照可能会有所不同。

关于.net - EFCore cli 生成无用的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66371124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com