1

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

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

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

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

谢谢

4

1 回答 1

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 文件中这样做。

于 2013-06-16T15:34:43.200 回答