ASP.NET MVC 4,Code First - 清除测试数据的最快方法

时间:2013-06-16 09:19:21

标签: asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5 ef-migrations

我的ASP.NET MVC 4 Code First应用程序使用迁移创建种子数据 - 效果很好。

随着时间的推移,我自己输入的其他测试数据会逐渐增加。

删除此测试数据并返回种子数据的最快方法是什么?

我不希望每次运行应用程序时都重新创建数据库。

由于

1 个答案:

答案 0 :(得分:1)

最快捷的方法是删除数据库中的所有数据,并在DbContextInitializer上调用Seed函数。

删除SQL Server中的所有数据就像

一样简单
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'DELETE FROM ?'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO

在更高的杠杆上,有不同的数据库初始化程序可用。

开箱即用,您可以使用以下内容。

  • CreateDatabaseIfNotExists
  • DropCreateDatabaseWhenModelChanges
  • DropCreateDatabaseAlways

根据您的要求切换初始化程序。通常我会在global.asax文件中执行此操作。