Mir*_*vec 9 c# entity-framework-core asp.net-core asp.net-core-5.0
我从 Visual Studio 创建了一个新的 .NET Core Web 应用程序,并在启动类中生成了这段代码:
if (env.IsDevelopment())
{
// ***
app.UseMigrationsEndPoint();
// ***
}
Run Code Online (Sandbox Code Playgroud)
这条线到底是做什么的app.UseMigrationsEndPoint()?
官方文档根本没有帮助:
处理执行迁移操作的请求。中间件将侦听对 DefaultPath 的请求。
默认路径是什么?发布什么?它实际上会执行什么?它有任何可选参数吗?它以某种方式受到保护吗?
Mic*_*uso 44
这app.UseMigrationsEndPoint()实际上是开发中非常方便的工具。
在开发过程中,我们将实体添加到数据库上下文中,或修改已有的实体。我们dotnet ef migrations add <NameOfMigration>照常运行,这将生成迁移文件。我个人通常会在命令成功dotnet ef database update时运行migrations add。但是,使用app.UseMigrationsEndPoint(),我不必手动运行dotnet ef database update.
因此,我们尝试在开发中构建并运行我们的应用程序。浏览器加载了我们的应用程序,但database update尚未像我们预期的那样发生。
但是,如果我们尝试访问需要访问尚未更新的表的页面或 API 调用,我们会得到一个特殊页面 - 不是错误页面 - 而是列出所有尚未更新的迁移的页面已应用。
令人惊讶的是,有一个按钮标记为“应用迁移”(或类似的内容)。我们点击它,然后我们的数据库将根据尚未应用的迁移进行更新。然后我们将重新加载页面,浏览器将按照我们的预期显示页面。我们可以检查表SQL Server Object Explorer或其他工具,我们将看到这些迁移得到反映。
| 归档时间: |
|
| 查看次数: |
1602 次 |
| 最近记录: |