.NET .NET Aspire SQL Database 專案託管整合
註解
這項整合是 .NET.NET Aspire 社群工具組 的一部分, 不受 .NET.NET Aspire 小組正式支援。
在本文中,您將瞭解如何使用 SQL Database 專案中的 .NET Aspire 托管整合功能,將資料庫架構發佈至 SQL Server 資料庫。
先決條件
此整合需要一個基於 MSBuild.Sdk.SqlProj 或 Microsoft.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
自定義動作來重新部署更新,而不需要重新啟動應用程式主機。