Azure 多个 DbContext 在具有不同的连接字符串时最终在同一个数据库中

问题描述 投票:0回答:2
c# entity-framework azure azure-web-app-service entity-framework-migrations
2个回答
0
投票

根据你的描述,我这边查了这个问题。我通过 VS 发布向导发布了我的 Web 应用程序,并手动配置了

AppContext
DefaultConnection
的连接字符串,如下所示:

由于我选择了在运行时使用此连接字符串(更新目标 web.config),您可以利用 KUDU 或 Azure App Service Editor 查看修改后的 web.config 并检查连接字符串设置。您可以关注的详细信息了解 Azure 应用服务编辑器.

两个不同的上下文都在 1 个数据库中....数据库 Datadb 充满了迁移和所有表。虽然我期待在 identitydb 上进行与用户相关的迁移。

从您发布的 web.config,您创建了一个 SQL Server (

escapegamessqlserver.database.windows.net
) 并为您的
DefaultConnection
连接字符串创建了一个名为 identitydb 的 sql 数据库,为您的
AppContext
连接字符串创建了一个名为 Datadb 的 sql 数据库。虽然,我不知道
AppContext_DatabasePublish
从哪里来。但是根据您的
myAppContext
ApplicationDbContext
,连接字符串已指向相关的azure sql数据库,您的应用程序应该按预期工作。

此外,您可以在 Azure 门户的“设置 > 应用程序设置”下配置 DefaultConnectionAppContext 连接字符串,而不是为每个 DbContext 手动设置连接字符串。此时,您发布的 web.config 下的连接字符串不会被修改,应用服务将在运行时根据您在 Azure 门户上的配置覆盖连接字符串设置。有关更多详细信息,您可以按照在 Azure 应用服务中配置 Web 应用程序


0
投票

这就解决了。 我在 Azure 端的 web.config 中的设置被您可以在 Azure 门户中设置的连接字符串选项覆盖

应用服务 ->(应用名称)-> 应用程序设置 -> 连接字符串

有一个值被称为 defaultConnection 这个值覆盖了我在 web.config 文件中的设置

© www.soinside.com 2019 - 2024. All rights reserved.