如何在迁移期间使用MigrationBuilder DeleteData删除所有行?

Rup*_*ish 4 entity-framework ef-migrations .net-core

文件是不是非常有帮助的-只是一个函数签名,其中最简单的是列表:

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

我很确定我可以解决table,keyColumn和schema中的内容,但是如果我要删除所有行,我应该在keyValue中放入什么值?

小智 8

看起来不像DeleteData操作被设计为允许删除表操作中的所有内容.EF使用keyColumn和keyValue来确定要删除的内容,即keyColumn = keyValue.我建议使用这样的东西:

migrationBuilder.Sql("DELETE FROM [table]", true);
Run Code Online (Sandbox Code Playgroud)

https://github.com/aspnet/EntityFrameworkCore/blob/dev/src/EFCore.Relational/Migrations/Operations/DeleteDataOperation.cs

https://github.com/aspnet/EntityFrameworkCore/blob/dev/src/EFCore.Relational/Migrations/MigrationBuilder.cs (约1100行)

  • 为什么第二个参数“suppressTransaction”应该是“true”? (5认同)