Dot-Net-Core

如何在遷移期間使用 MigrationBuilder DeleteData 刪除所有行?

  • September 21, 2020

文件不是很有幫助 - 只是一個函式簽名列表,其中最簡單的是:

public virtual OperationBuilder DeleteData(字元串表,字元串keyColumn,對象keyValue,字元串schema = null);

我相當確定我可以計算出 table、keyColumn 和 schema 中的內容,但是如果我想刪除所有行,我應該在 keyValue 中輸入什麼值?

看起來 DeleteData 操作並非旨在允許刪除表操作中的所有內容。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行)

引用自:https://stackoverflow.com/questions/49441294