文档不是很有帮助——只是一个函数签名列表,其中最简单的是:
public virtualOperationBuilderDeleteData(字符串表,字符串keyColumn,对象keyValue,字符串模式= null);
我相当确定我可以计算出表、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/MigrationBuilder.cs(大约第1400行)
这是一篇旧文章,但我同意文档中的示例会更有帮助。以下是我删除多行而无需大量重复语句的方法:
var keyValues = new Object[] {
new Guid("3DED1B8E-88D7-4C4E-9A02-3C11FF210EA9"),
new Guid("E0DFFCFB-6479-49BA-BCEE-13243A95FAC8"),
new Guid("D953AC1E-674B-4EA9-9C1F-572B454133ED"),
new Guid("06ad3c30-2b01-473c-8617-9966fae63739"),
};
migrationBuilder.DeleteData(
table: "ValidOperationTypes",
keyColumn: "Id",
keyColumnType: "Guid",
keyValues: keyValues);