Sdílet prostřednictvím


.NET .NET Aspire Hostování integrace projektů SQL databáze

zahrnuje:integrace hostování ne Client integrace

Poznámka

Tato integrace je součástí sady Community Toolkit a není oficiálně podporovaná týmem .

V tomto článku se dozvíte, jak pomocí integrace hostujících projektů .NET Aspire SQL Database publikovat schéma vaší databáze do databáze SQL Server.

Požadavky

Tato integrace vyžaduje projekt sql Database založený na MSBuild.Sdk.SqlProj nebo Microsoft.Build.Sql.

Integrace hostování

Chcete-li začít s integrací hostování SQL Database projektů .NET.NET Aspire, nainstalujte 📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects NuGet balíček v projektu hostování aplikace.

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

Další informace naleznete v tématu dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.

Příklad využití

Přidejte odkaz na 📦 MSBuild.Sdk.SqlProj nebo 📦 projektu Microsoft.Build.Sql, který chcete publikovat v hostitelském projektu aplikace .NET.NET Aspire:

dotnet add reference ../MySqlProj/MySqlProj.csproj

Poznámka

Přidání tohoto odkazu v současné době způsobí, že se v projektu zobrazí upozornění ASPIRE004 kvůli tomu, jak se odkazy analyzují. Tým .NET.NET Aspire o tom ví a pracujeme na čistějším řešení.

Přidejte projekt jako prostředek do aplikace .NET.NET Aspire AppHost.

var builder = DistributedApplication.CreateBuilder(args);

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

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

Když teď spustíte projekt hostitele aplikace .NET Aspire, uvidíte, že se projekt služby SQL Database publikuje do zadaného SQL Server.

Podpora balíčků NuGet

Počínaje verzí 9.2.0 můžete nasazovat databáze z odkazovaných balíčků NuGet, jako jsou například databáze vytvořené 📦 MSBuild.Sdk.SqlProj nebo 📦 Microsoft.Build.Sql. Chcete-li nasadit balíček NuGet, přidejte jej do hostitelského projektu aplikace Aspire, například:

dotnet add package ErikEJ.Dacpac.Chinook

Dále upravte soubor projektu a nastavte příznak IsAspirePackageResource na True pro odpovídající PackageReference, jak je znázorněno v následujícím příkladu:

<PackageReference Include="ErikEJ.Dacpac.Chinook" Version="1.0.0"
                  IsAspirePackageResource="True" />

Nakonec do modelu aplikace přidejte balíček jako prostředek:

var builder = DistributedApplication.CreateBuilder(args);

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

builder.AddSqlPackage<Packages.ErikEJ_Dacpac_Chinook>("chinook")
       .WithReference(sql);

Poznámka

Ve výchozím nastavení se očekává, že .dacpac bude umístěn pod tools/<package-id>.dacpac. V předchozím příkladu se očekává cesta tools/ErikEJ.Dacpac.Chinook.dacpac. Pokud je .dacpac z jakéhokoli důvodu pod jinou cestou v rámci balíčku, můžete použít rozhraní API WithDacpac("relative/path/to/some.dacpac") k určení cesty vzhledem ke kořenovému adresáři hostitelského projektu aplikace.

Podpora místních souborů .dacpac

Pokud získáváte svůj soubor .dacpac odjinud než z odkazu na projekt, můžete také přímo zadat cestu k souboru .dacpac:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Podpora možností nasazení

Pokud chcete definovat možnosti, které ovlivňují chování nasazení balíčku, zavolejte rozhraní API WithConfigureDacDeployOptions:

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();

Předchozí kód:

  • Přidá prostředek SQL serveru s názvem sql a k němu přidá prostředek databáze test.
  • Přidá zdroj projektu SQL s názvem mysqlproj a nakonfiguruje DacDeployOptions.
  • Zdroj projektu SQL závisí na databázovém zdroji.

Opětovné nasazení podpory

Pokud v projektu SQL Database provedete změny, zatímco aplikace host běží, můžete na řídicím panelu Redeploy.NET použít vlastní akci .NET Aspire pro opětovné nasazení aktualizací, aniž byste museli restartovat aplikaci host.

Viz také