Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Inclusief: Alleen hostingintegratie — 
Client integratie niet inbegrepen
Notitie
Deze integratie maakt deel uit van de Aspire Community Toolkit en wordt niet officieel ondersteund door het Aspire team.
In dit artikel leert u hoe u de Aspire SQL Database Projects-hostingintegratie gebruikt om uw databaseschema naar uw SQL Server-database te publiceren.
Voorwaarden
Voor deze integratie is een SQL Database-project vereist op basis van MSBuild.Sdk.SqlProj- of Microsoft.Build.Sql.
Hostingintegratie
Installeer de CommunityToolkit om aan de slag te gaan met de Aspire integratie van SQL Database Projects-hosting.📦Aspire Hosting.SqlDatabaseProjects NuGet-pakket in het AppHost-project.
dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.
Voorbeeld van gebruik
Voeg een verwijzing toe naar het 📦 project MSBuild.Sdk.SqlProj of 📦 Microsoft.Build.Sql dat u wilt publiceren in uw Aspire AppHost-project:
dotnet add reference ../MySqlProj/MySqlProj.csproj
Notitie
Als u deze verwijzing toevoegt, resulteert dit momenteel in een waarschuwing ASPIRE004 in het project vanwege de wijze waarop verwijzingen worden geparseerd. Het Aspire team is hiervan op de hoogte en we werken aan een schonere oplossing.
Voeg het project toe als een resource aan uw Aspire AppHost:
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");
builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
       .WithReference(sql);
Wanneer u nu uw Aspire AppHost-project uitvoert, ziet u dat het SQL Database-project wordt gepubliceerd naar de opgegeven SQL Server.
Ondersteuning voor NuGet-pakketten
Vanaf versie 9.2.0 kunt u databases implementeren vanuit nuget-pakketten waarnaar wordt verwezen, zoals die worden geproduceerd door 📦 MSBuild.Sdk.SqlProj- of 📦 Microsoft.Build.Sql. Als u het NuGet-pakket wilt implementeren, voegt u het NuGet-pakket toe aan uw Aspire AppHost-project, bijvoorbeeld:
dotnet add package ErikEJ.Dacpac.Chinook
Bewerk vervolgens het projectbestand om de vlag IsAspirePackageResource in te stellen op True voor de bijbehorende PackageReference, zoals wordt weergegeven in het volgende voorbeeld:
<PackageReference Include="ErikEJ.Dacpac.Chinook" Version="1.0.0"
                  IsAspirePackageResource="True" />
Voeg ten slotte het pakket toe als een resource aan uw app-model:
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");
builder.AddSqlPackage<Packages.ErikEJ_Dacpac_Chinook>("chinook")
       .WithReference(sql);
Notitie
Standaard wordt verwacht dat de .dacpac- zich onder tools/<package-id>.dacpacbevindt. In het voorgaande voorbeeld wordt het tools/ErikEJ.Dacpac.Chinook.dacpac pad verwacht. Als de DACPAC om welke reden dan ook onder een ander pad binnen het pakket valt, kunt u API gebruiken WithDacpac("relative/path/to/some.dacpac") om een pad op te geven ten opzichte van de hoofdmap van het AppHost-project.
Ondersteuning voor lokale .dacpac-bestanden
Als u uw .dacpac--bestand van een andere bron dan een projectreferentie haalt, kunt u ook het pad naar het .dacpac--bestand rechtstreeks opgeven.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");
builder.AddSqlProject("mysqlproj")
       .WithDacpac("path/to/mysqlproj.dacpac")
       .WithReference(sql);
Ondersteuning voor bestaande SQL Server-instanties
Vanaf versie 9.2.0 kunt u het SQL Database-project publiceren naar een bestaand SQL Server-exemplaar met behulp van een verbindingsreeks:
var builder = DistributedApplication.CreateBuilder(args);
// Get an existing SQL Server connection string from the configuration
var connection = builder.AddConnectionString("Aspire");
builder.AddSqlProject<Projects.SdkProject>("mysqlproj")
       .WithReference(connection);
builder.Build().Run();
Ondersteuning voor implementatieopties
Als u opties wilt definiëren die van invloed zijn op het gedrag van pakketimplementatie, roept u de WithConfigureDacDeployOptions-API aan:
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();
De voorgaande code:
- Hiermee voegt u een SQL Server-resource met de naam 
sqltoe en voegt u er eentestdatabaseresource aan toe. - Hiermee voegt u een SQL-projectresource met de naam 
mysqlprojtoe en configureert u vervolgens de DacDeployOptions. - De SQL-projectresource is afhankelijk van de databaseresource.
 
Ondersteuning bij herimplementatie
Als u wijzigingen aanbrengt in uw SQL Database-project terwijl de AppHost wordt uitgevoerd, kunt u de Redeploy aangepaste actie op het Aspire dashboard gebruiken om uw updates opnieuw te implementeren zonder de AppHost opnieuw te hoeven starten.