如何使用 MigrationBuilder DeleteData 在迁移过程中删除所有行?

How do I use MigrationBuilder DeleteData to delete all rows during a migration?

documentation 不是很有帮助 - 只是一个函数签名列表,其中最简单的是:

public virtual OperationBuilder DeleteData (string table, string keyColumn, object keyValue, string schema = null);

我相当确定我可以算出 table、keyColumn 和 schema 中的内容,但是如果我想删除所有行,我应该在 keyValue 中输入什么值?

似乎 DeleteData 操作旨在允许删除 table 操作中的所有内容。 EF 使用 keyColumn 和 keyValue 来确定要删除的内容,即 keyColumn = keyValue。我建议使用这样的东西:

migrationBuilder.Sql("DELETE FROM [table]", true);

https://github.com/dotnet/efcore/blob/main/src/EFCore.Relational/Migrations/Operations/DeleteDataOperation.cs

https://github.com/dotnet/efcore/blob/main/src/EFCore.Relational/Migrations/MigrationBuilder.cs(关于第 1400 行)