entity-framework - 如何删除种子方法中的所有数据?

标签 entity-framework entity-framework-migrations

我首先将 Entity Framework 代码用于迁移,并且我想从所有表中删除 Seed 方法中的所有数据,但 __MigrationHistory 表除外。在我的数据库清理之后,我将继续使用种子方法,但只是添加新对象。

我想要这个是因为我使用开发数据库进行开发并且我一直想将其重置为默认状态。

那么,在种子方法中从所有表中删除所有数据的最佳方法是什么?__MigrationHistory 除外?

最佳答案

public override void Seed(YourNamespace.Model.DbContext context)
{
            // Deletes all data, from all tables, except for __MigrationHistory
            context.Database.ExecuteSqlCommand("sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'");
            context.Database.ExecuteSqlCommand("sp_MSForEachTable 'IF OBJECT_ID(''?'') NOT IN (ISNULL(OBJECT_ID(''[dbo].[__MigrationHistory]''),0)) DELETE FROM ?'");
            context.Database.ExecuteSqlCommand("EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'");

            // proceed with the seed here
}

关于entity-framework - 如何删除种子方法中的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25702693/

相关文章:

c# - 无效的列名 *Id

entity-framework - 当我运行我的项目时,EF Core 迁移是否自动运行?

c# - Entity Framework : am I supposed to modify migration classes?

c# - 插入迁移

c# - 如何使用 LINQ 从 sql 查询编写 linq 查询?

c# - 如何在 EF 中使用一个 Insert 查询添加多行

entity-framework-4 - 获取初始 Entity Framework 迁移脚本

c# - migrate.exe 无法加载 Entity Framework

c# - 使用 Entity Framework,Nop Commerce 产品导入变得更慢并且随着时间的推移使用更多内存

entity-framework - 聚合根之间的外键