Entity Framework 6.1.2 中基于代码的数据库迁移:如何避免使用 powershell 命令?

Code based DB migration in Entity Framework 6.1.2: How to avoid using powershell commands?

我正在使用 EF 6.1.2,要进行基于代码的数据库迁移,我们需要执行一些命令。它们是:Add-MigrationUpdate-Database。我希望这种迁移发生在生产环境中。那么有什么方法可以避免 Package Manager Console 中的 Update-Database 命令并使用 C# API 来做同样的事情吗? 我不能在生产环境中使用 Update-Database 命令。我想在 c# 中对其进行替代。

有一个明显的替代方案,您可以为这个特定的数据库上下文设置 MigrateDatabaseToLatestVersion

这样,当对数据库执行第一个查询时,迁移会自动发生。您甚至可以有一个单独的命令行工具来执行相同的操作,但在应用程序之前按需在生产环境中执行(而不是在应用程序执行第一个查询时)。

初始化器使用起来很简单,只需调用:

Database.SetInitializer(
           new MigrateDatabaseToLatestVersion<YourContext, Configuration>());

其中 Configuration 是保存迁移配置的 class。