共用方式為


.NET .NET Aspire SQL Database 專案託管整合

包含:託管整合 不包括 Client 整合

註解

這項整合是 .NET.NET Aspire 社群工具組 的一部分, 不受 .NET.NET Aspire 小組正式支援。

在本文中,您將瞭解如何使用 SQL Database 專案中的 .NET Aspire 托管整合功能,將資料庫架構發佈至 SQL Server 資料庫。

先決條件

此整合需要一個基於 MSBuild.Sdk.SqlProjMicrosoft.Build.Sql的 SQL Database 專案。

主機整合

若要開始使用裝載整合 .NET.NET Aspire SQL Database Projects,請安裝 📦 CommunityToolkit。Aspire。Hosting.SqlDatabaseProjects 應用程式主專案中的 NuGet 套件。

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

如需詳細資訊,請參閱 dotnet add package管理 .NET 應用程式中的套件相依性

範例使用方式

新增 📦 MSBuild.Sdk.SqlProj📦 Microsoft.Build.Sql 項目的參考,以在 .NET.NET Aspire 應用程式主專案中發佈:

dotnet add reference ../MySqlProj/MySqlProj.csproj

注意

新增此參考目前會導致專案出現警告 ASPIRE004,因為參考的解析方式。 .NET .NET Aspire 團隊知道這一點,我們正在尋求更完善的解決方案。

將專案新增為資源至 .NET.NET Aspire AppHost:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
       .WithReference(sql);

現在當您執行 .NET Aspire 應用程式主專案時,您會看到 SQL Database 項目發行至指定的 SQL Server。

本機 .dacpac 檔案支援

如果您要從非項目參考的其他位置取得 .dacpac 檔案,您也可以直接指定 .dacpac 檔案的路徑:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithDacpac("path/to/mysqlproj.dacpac")
       .WithReference(sql);

部署選項支援

若要定義影響封裝部署行為的選項,請呼叫 WithConfigureDacDeployOptions API:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithConfigureDacDeployOptions(options => options.IncludeCompositeObjects = true)
       .WithReference(sql);

builder.Build().Run();

上述程式代碼:

  • 新增名為 sql 的 SQL server 資源,並將 test 資料庫資源加入其中。
  • 新增名為 mysqlproj 的 SQL 專案資源,然後設定 DacDeployOptions
  • SQL 專案資源取決於資料庫資源。

重新部署支援

如果您在應用程式主機執行時變更 SQL Database 專案,您可以使用 .NET.NET Aspire 儀錶板上的 Redeploy 自定義動作來重新部署更新,而不需要重新啟動應用程式主機。

另請參閱