Condividi tramite


integrazione dell'hosting per progetti di database SQL .NET.NET Aspire

include:integrazione dell'hosting non Client

Nota

Questa integrazione fa parte di .NET.NET Aspire Community Toolkit e non è ufficialmente supportata dal team .NET.NET Aspire.

In questo articolo, imparerai come utilizzare l'integrazione dei progetti database SQL .NET Aspire per pubblicare lo schema del tuo database nel database SQL Server.

Prerequisiti

Questa integrazione richiede un progetto di database SQL basato su MSBuild.Sdk.SqlProj o Microsoft.Build.Sql.

Integrazione del servizio di hosting

Per iniziare a usare l'integrazione dell'hosting di progetti di database SQL .NET.NET Aspire, installare il pacchetto NuGet 📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects nel progetto host dell'app.

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

Per ulteriori informazioni, vedere dotnet add package oppure Gestire le dipendenze dei pacchetti nelle applicazioni .NET.

Esempio di utilizzo

Aggiungere un riferimento al 📦 MSBuild.Sdk.SqlProj o al 📦 Microsoft.Build.Sql che si desidera pubblicare nel progetto host dell'app .NET.NET Aspire.

dotnet add reference ../MySqlProj/MySqlProj.csproj

Nota

L'aggiunta di questo riferimento genera attualmente un avviso ASPIRE004 nel progetto a causa della modalità di analisi dei riferimenti. Il team .NET.NET Aspire è a conoscenza di questo aspetto e stiamo lavorando a una soluzione più pulita.

Aggiungi il progetto come risorsa al AppHost .NET.NET Aspire.

var builder = DistributedApplication.CreateBuilder(args);

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

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

Ora, quando esegui il progetto host dell'app .NET Aspire, vedrai che il progetto di database SQL viene pubblicato nel SQL Serverspecificato.

Supporto del file con estensione dacpac locale

Se si ottiene il file con estensione .dacpac da una fonte diversa rispetto a un riferimento al progetto, è anche possibile specificare direttamente il percorso del file con estensione .dacpac.

var builder = DistributedApplication.CreateBuilder(args);

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

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

Supporto delle opzioni di distribuzione

Per definire le opzioni che influiscono sul comportamento della distribuzione del pacchetto, chiamare l'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();

Il codice precedente:

  • Aggiunge una risorsa sql server denominata sql e vi aggiunge una risorsa di database test.
  • Aggiunge una risorsa di progetto SQL denominata mysqlproj e quindi configura l'DacDeployOptions.
  • La risorsa del progetto SQL dipende dalla risorsa del database.

Ridistribuire il supporto

Se si apportano modifiche al progetto di database SQL durante l'esecuzione dell'host dell'app, è possibile usare l'azione personalizzata Redeploy nel dashboard .NET.NET Aspire per ridistribuire gli aggiornamenti senza dover riavviare l'host dell'app.

Vedere anche