我正在使用 MS SQL Server 创建示例 EF Core 项目并将其部署在 Azure 中。
到目前为止,我有一个 BookingAPI 服务,并且有 2 个类库,分别称为 SharedServices 和 Domains。
BookingAPI没有有ApplicationDBContext。 Domains 项目有 ApplicationDBContext 并且所有域也在其中。
BookingAPI 正在调用 Domains 项目来访问数据库。
项目结构如下
- BookingServices (Folder)
- BookingAPI (Web API in .net core)
- Program.cs
- appsettings.json
- appsettings.Development.json
- appsettings.Production.json
- SharedServices (Folder)
- SharedServices (class Library)
- Domains (class Library)
- Data (Folder)
-ApplicationDBContext
- Migrations (Folder)
- Migration1
- Migration2
- Tables (Folder)
- Bookings.cs
- Tables.cs
只要我在当地工作,就完全没问题。我可以创建迁移并更新数据库。 但我想在 Azure 中部署这个项目。 为此,我在 Azure 中创建了一个数据库,并从 Visual Studio 发布了它。
但是,我在将 BookingAPI 发布到 Azure 时遇到以下问题:
问题:
如果我在 appsettings.Development.json 和 appsettings.Production.json 中写入我的 ConnectionStrings,Azure 发布者无法找到它们。如果我把它写在appsettings.json中,那么就可以找到它。
即使我正确引用了 Domains 项目(我使用 DbContext 从 BookingAPI 进行数据库更新),并且 Domains 项目中有迁移,但在发布过程中找不到迁移,并且不会应用于 Azure 数据库。
任何人都可以帮我解决这个问题吗?
谢谢!
在不同的环境下工作时,发布时需要注意一些事项。显然 appsettings.json 是默认设置的,因为您在发布时没有指定环境。
如果您已完成所有环境设置,则发布生产环境就足够了。
dotnet 发布 -c ASPNETCORE_ENVIRONMENT
以及生产环境的示例
dotnet 发布 -c 制作