app.UseMigrationsEndPoint 在 .NET Core Web 应用程序启动中的作用 class
What app.UseMigrationsEndPoint does in .NET Core Web Application Startup class
我从 Visual Studio 创建了一个新的 .NET Core Web 应用程序,我在启动时得到了这段代码 class:
if (env.IsDevelopment())
{
// ***
app.UseMigrationsEndPoint();
// ***
}
这行 app.UseMigrationsEndPoint()
实际上是做什么用的?
The official docs 一点帮助都没有:
Processes requests to execute migrations operations. The middleware will listen for requests made to DefaultPath.
默认路径是什么?什么要POST来呢?它实际上会执行什么?它有任何可选参数吗?它是否受到某种保护?
您可能已经从链接的文档页面中看到,它来自 EF Core。可以在 GitHub.
上找到确切的代码 运行
它会检查所使用的数据库是否有任何待处理的迁移,并在需要时应用它们。就是这样。
这个app.UseMigrationsEndPoint()
实际上是一个非常方便的开发工具。
随着我们的开发,我们将实体添加到数据库上下文中,或者修改我们拥有的实体。我们像往常一样 运行 dotnet ef migrations add <NameOfMigration>
,这将生成迁移文件。当 migrations add
命令成功时,我个人通常会 运行 dotnet ef database update
。但是,使用 app.UseMigrationsEndPoint()
,我不必手动 运行 dotnet ef database update
.
因此,我们尝试构建并 运行 我们的应用程序正在开发中。浏览器加载了我们的应用程序,但是 database update
并没有像我们预期的那样发生。
但是,如果我们尝试访问一个页面或 API 调用需要访问尚未更新的 table,我们会得到一个特殊页面 - 而不是错误页面- 但列出所有尚未应用的迁移。
令人惊讶的是,有一个标记为“应用迁移”(或类似名称)的按钮。我们将单击它,然后我们的数据库将根据尚未应用的迁移进行更新。然后我们将重新加载页面,然后浏览器将按照我们的预期显示页面。我们可以检查 SQL Server Object Explorer
或其他工具中的 tables,我们将看到反映的那些迁移。
我从 Visual Studio 创建了一个新的 .NET Core Web 应用程序,我在启动时得到了这段代码 class:
if (env.IsDevelopment())
{
// ***
app.UseMigrationsEndPoint();
// ***
}
这行 app.UseMigrationsEndPoint()
实际上是做什么用的?
The official docs 一点帮助都没有:
Processes requests to execute migrations operations. The middleware will listen for requests made to DefaultPath.
默认路径是什么?什么要POST来呢?它实际上会执行什么?它有任何可选参数吗?它是否受到某种保护?
您可能已经从链接的文档页面中看到,它来自 EF Core。可以在 GitHub.
上找到确切的代码 运行它会检查所使用的数据库是否有任何待处理的迁移,并在需要时应用它们。就是这样。
这个app.UseMigrationsEndPoint()
实际上是一个非常方便的开发工具。
随着我们的开发,我们将实体添加到数据库上下文中,或者修改我们拥有的实体。我们像往常一样 运行 dotnet ef migrations add <NameOfMigration>
,这将生成迁移文件。当 migrations add
命令成功时,我个人通常会 运行 dotnet ef database update
。但是,使用 app.UseMigrationsEndPoint()
,我不必手动 运行 dotnet ef database update
.
因此,我们尝试构建并 运行 我们的应用程序正在开发中。浏览器加载了我们的应用程序,但是 database update
并没有像我们预期的那样发生。
但是,如果我们尝试访问一个页面或 API 调用需要访问尚未更新的 table,我们会得到一个特殊页面 - 而不是错误页面- 但列出所有尚未应用的迁移。
令人惊讶的是,有一个标记为“应用迁移”(或类似名称)的按钮。我们将单击它,然后我们的数据库将根据尚未应用的迁移进行更新。然后我们将重新加载页面,然后浏览器将按照我们的预期显示页面。我们可以检查 SQL Server Object Explorer
或其他工具中的 tables,我们将看到反映的那些迁移。