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

时间:2018-03-23 02:05:20

标签: entity-framework .net-core ef-migrations

documentation不是很有用 - 只是一个功能签名列表,其中最简单的是:

  

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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行)